<Type Name="ExportEffectAttribute" FullName="Microsoft.Maui.Controls.ExportEffectAttribute">
  <TypeSignature Language="C#" Value="public sealed class ExportEffectAttribute : Attribute" />
  <TypeSignature Language="ILAsm" Value=".class public auto ansi sealed beforefieldinit ExportEffectAttribute extends System.Attribute" />
  <TypeSignature Language="DocId" Value="T:Microsoft.Maui.Controls.ExportEffectAttribute" />
  <TypeSignature Language="F#" Value="type ExportEffectAttribute = class&#xA;    inherit Attribute" />
  <AssemblyInfo>
    <AssemblyName>Microsoft.Maui.Controls.Core</AssemblyName>
    <AssemblyVersion>0.0.0.0</AssemblyVersion>
    <AssemblyVersion>2.0.0.0</AssemblyVersion>
  </AssemblyInfo>
  <Base>
    <BaseTypeName>System.Attribute</BaseTypeName>
  </Base>
  <Interfaces />
  <Attributes>
    <Attribute>
      <AttributeName>System.AttributeUsage(System.AttributeTargets.Assembly, AllowMultiple=true)</AttributeName>
    </Attribute>
  </Attributes>
  <Docs>
    <summary>Attribute that identifies a <see cref="T:Microsoft.Maui.Controls.Effect" /> with a unique identifier that can be used with <see cref="M:Microsoft.Maui.Controls.Effect.Resolve(System.String)" /> to locate an effect.</summary>
    <remarks>
      <para>Developers must supply a name that is unique over the scope of the value that was supplied to <see cref="T:Microsoft.Maui.Controls.ResolutionGroupNameAttribute" />. The <see cref="M:Microsoft.Maui.Controls.Effect.Resolve(System.String)" /> method takes a string that is the concatenation of the the resolution group name that was provided to <see cref="T:Microsoft.Maui.Controls.ResolutionGroupNameAttribute" />, '<c>.</c>', and the name that was supplied to <see cref="T:Microsoft.Maui.Controls.ExportEffectAttribute" />, and returns an effect that will have the type <paramref name="effectType" />.</para>
      <example>
        <para>For example, with the declarations:</para>
        <code lang="csharp lang-csharp"><![CDATA[[assembly: ResolutionGroupName ("com.YourCompany")]
[assembly: ExportEffect (typeof (ShadowEffect), "ShadowEffect")]]]></code>
        <para>Then the code below will add the effect to a button:</para>
        <code lang="csharp lang-csharp"><![CDATA[var button = new Button { Text = "I have a shadow" };
button.Effects.Add (Effect.Resolve ("com.YourCompany.ShadowEffect"));]]></code>
      </example>
    </remarks>
    <altmember cref="T:Microsoft.Maui.Controls.ResolutionGroupNameAttribute" />
  </Docs>
  <Members>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="public ExportEffectAttribute (Type effectType, string uniqueName);" />
      <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor(class System.Type effectType, string uniqueName) cil managed" />
      <MemberSignature Language="DocId" Value="M:Microsoft.Maui.Controls.ExportEffectAttribute.#ctor(System.Type,System.String)" />
      <MemberSignature Language="F#" Value="new Microsoft.Maui.Controls.ExportEffectAttribute : Type * string -&gt; Microsoft.Maui.Controls.ExportEffectAttribute" Usage="new Microsoft.Maui.Controls.ExportEffectAttribute (effectType, uniqueName)" />
      <MemberType>Constructor</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>0.0.0.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyName>Microsoft.Maui.Controls.Core</AssemblyName>
      </AssemblyInfo>
      <Parameters>
        <Parameter Name="effectType" Type="System.Type" />
        <Parameter Name="uniqueName" Type="System.String" />
      </Parameters>
      <Docs>
        <param name="effectType">The type of the marked <see cref="T:Microsoft.Maui.Controls.Effect" />.</param>
        <param name="uniqueName">A unique name for the <see cref="T:Microsoft.Maui.Controls.Effect" />.</param>
        <summary>Creates a new <see cref="T:Microsoft.Maui.Controls.ExportEffectAttribute" />.</summary>
        <remarks>
          <para>Developers must supply a <paramref name="uniqueName" /> that is unique over the scope of the value that was supplied to <see cref="T:Microsoft.Maui.Controls.ResolutionGroupNameAttribute" />. The <see cref="M:Microsoft.Maui.Controls.Effect.Resolve(System.String)" /> method takes a string that is the concatenation of the the resolution group name that was provided to <see cref="T:Microsoft.Maui.Controls.ResolutionGroupNameAttribute" />, '<c>.</c>', and the name that was supplied to <see cref="T:Microsoft.Maui.Controls.ExportEffectAttribute" />, and returns an effect that will have the type <paramref name="effectType" />.</para>
          <example>
            <para>For example, with the declarations:</para>
            <code lang="csharp lang-csharp"><![CDATA[[assembly: ResolutionGroupName ("com.YourCompany")]
[assembly: ExportEffect (typeof (ShadowEffect), "ShadowEffect")]]]></code>
            <para>Then the code below will add the effect to a button:</para>
            <code lang="csharp lang-csharp"><![CDATA[var button = new Button { Text = "I have a shadow" };
button.Effects.Add (Effect.Resolve ("com.YourCompany.ShadowEffect"));]]></code>
          </example>
        </remarks>
        <altmember cref="T:Microsoft.Maui.Controls.ResolutionGroupNameAttribute" />
      </Docs>
    </Member>
  </Members>
</Type>
