<Type Name="ServiceInfoArgs" FullName="Avahi.ServiceInfoArgs">
  <TypeSignature Language="C#" Value="public class ServiceInfoArgs : System.EventArgs" />
  <AssemblyInfo>
    <AssemblyName>avahi-sharp</AssemblyName>
    <AssemblyVersion>1.0.0.0</AssemblyVersion>
  </AssemblyInfo>
  <Base>
    <BaseTypeName>System.EventArgs</BaseTypeName>
  </Base>
  <Interfaces />
  <Members>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="public ServiceInfoArgs (Avahi.ServiceInfo service);" />
      <MemberType>Constructor</MemberType>
      <Parameters>
        <Parameter Name="service" Type="Avahi.ServiceInfo" />
      </Parameters>
      <Docs>
        <param name="service">To be added.</param>
        <summary>To be added.</summary>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="Service">
      <MemberSignature Language="C#" Value="public Avahi.ServiceInfo Service { get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>Avahi.ServiceInfo</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>To be added.</summary>
        <value>To be added.</value>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
  </Members>
  <Docs>
    <summary>To be added.</summary>
    <remarks>To be added.</remarks>
  </Docs>
</Type>
