This documentation is archived and is not being maintained.
LogicalMethodInfo.CustomAttributeProvider Property
.NET Framework 1.1
Gets the custom attributes applied to the method.
[Visual Basic] Public ReadOnly Property CustomAttributeProvider As _ ICustomAttributeProvider [C#] public ICustomAttributeProvider CustomAttributeProvider {get;} [C++] public: __property ICustomAttributeProvider* get_CustomAttributeProvider(); [JScript] public function get CustomAttributeProvider() : ICustomAttributeProvider;
Property Value
An ICustomAttributeProvider representing the custom attributes for the method.
Example
[Visual Basic] Imports System Imports System.Reflection Imports System.Web.Services.Protocols Imports MicroSoft.VisualBasic ' Define a custom attribute with one named parameter. <AttributeUsage(AttributeTargets.Method Or AttributeTargets.ReturnValue, AllowMultiple := True)> _ Public Class MyAttribute Inherits Attribute Private myName As String Public Sub New(name As String) myName = name End Sub 'New Public ReadOnly Property Name() As String Get Return myName End Get End Property End Class 'MyAttribute Public Class MyService <MyAttribute("This is the first sample attribute"), MyAttribute("This is the second sample attribute")> _ Public Function Add(xValue As Integer, yValue As Integer) _ As<MyAttribute("This is the return sample attribute")> Integer Return xValue + yValue End Function 'Add End Class 'MyService Public Class LogicalMethodInfo_GetCustomAttribute Public Shared Sub Main() Dim myType As Type = GetType(MyService) Dim myMethodInfo As MethodInfo = myType.GetMethod("Add") ' Create a synchronous 'LogicalMethodInfo' instance. Dim myLogicalMethodInfo As LogicalMethodInfo = _ LogicalMethodInfo.Create(New MethodInfo() {myMethodInfo}, LogicalMethodTypes.Sync)(0) ' Display the method for which the attributes are being displayed. Console.WriteLine(ControlChars.NewLine + "Displaying the attributes for the method : {0}" + _ ControlChars.NewLine, myLogicalMethodInfo.MethodInfo.ToString()) ' Displaying a custom attribute of type 'MyAttribute' Console.WriteLine(ControlChars.NewLine + "Displaying attribute of type 'MyAttribute'" + _ ControlChars.NewLine) Dim attribute As Object = myLogicalMethodInfo.GetCustomAttribute(GetType(MyAttribute)) Console.WriteLine(CType(attribute, MyAttribute).Name) ' Display all custom attribute of type 'MyAttribute'. Console.WriteLine(ControlChars.NewLine + "Displaying all attributes of type 'MyAttribute'" + _ ControlChars.NewLine) Dim attributes As Object() = myLogicalMethodInfo.GetCustomAttributes(GetType(MyAttribute)) Dim i As Integer For i = 0 To attributes.Length - 1 Console.WriteLine(CType(attributes(i), MyAttribute).Name) Next i ' Display all return attributes of type 'MyAttribute'. Console.WriteLine(ControlChars.NewLine + "Displaying all return attributes of type 'MyAttribute'" + _ ControlChars.NewLine) Dim myCustomAttributeProvider As ICustomAttributeProvider = _ myLogicalMethodInfo.ReturnTypeCustomAttributeProvider If myCustomAttributeProvider.IsDefined(GetType(MyAttribute), True) Then attributes = myCustomAttributeProvider.GetCustomAttributes(True) For i = 0 To attributes.Length - 1 If attributes(i).GetType().Equals(GetType(MyAttribute)) Then Console.WriteLine(CType(attributes(i), MyAttribute).Name) End If Next i End If ' Display all the custom attributes of type 'MyAttribute'. Console.WriteLine(ControlChars.NewLine + "Displaying all attributes of type 'MyAttribute'" + _ ControlChars.NewLine) myCustomAttributeProvider = myLogicalMethodInfo.CustomAttributeProvider If myCustomAttributeProvider.IsDefined(GetType(MyAttribute), True) Then attributes = myCustomAttributeProvider.GetCustomAttributes(True) For i = 0 To attributes.Length - 1 If attributes(i).GetType().Equals(GetType(MyAttribute)) Then Console.WriteLine(CType(attributes(i), MyAttribute).Name) End If Next i End If End Sub 'Main End Class 'LogicalMethodInfo_GetCustomAttribute [C#] using System; using System.Reflection; using System.Web.Services.Protocols; // Define a custom attribute with one named parameter. [AttributeUsage(AttributeTargets.Method | AttributeTargets.ReturnValue, AllowMultiple=true)] public class MyAttribute : Attribute { private string myName; public MyAttribute(string name) { myName = name; } public string Name { get { return myName; } } } public class MyService { [MyAttribute("This is the first sample attribute")] [MyAttribute("This is the second sample attribute")] [return: MyAttribute("This is the return sample attribute")] public int Add(int xValue, int yValue) { return (xValue + yValue); } } public class LogicalMethodInfo_GetCustomAttribute { public static void Main() { Type myType = typeof(MyService); MethodInfo myMethodInfo = myType.GetMethod("Add"); // Create a synchronous 'LogicalMethodInfo' instance. LogicalMethodInfo myLogicalMethodInfo = (LogicalMethodInfo.Create(new MethodInfo[] {myMethodInfo}, LogicalMethodTypes.Sync))[0]; // Display the method for which the attributes are being displayed. Console.WriteLine("\nDisplaying the attributes for the method : {0}\n", myLogicalMethodInfo.MethodInfo); // Displaying a custom attribute of type 'MyAttribute' Console.WriteLine("\nDisplaying attribute of type 'MyAttribute'\n"); object attribute = myLogicalMethodInfo.GetCustomAttribute(typeof(MyAttribute)); Console.WriteLine(((MyAttribute)attribute).Name); // Display all custom attribute of type 'MyAttribute'. Console.WriteLine("\nDisplaying all attributes of type 'MyAttribute'\n"); object[] attributes = myLogicalMethodInfo.GetCustomAttributes(typeof(MyAttribute)); for(int i = 0; i < attributes.Length; i++) Console.WriteLine(((MyAttribute)attributes[i]).Name); // Display all return attributes of type 'MyAttribute'. Console.WriteLine("\nDisplaying all return attributes of type 'MyAttribute'\n"); ICustomAttributeProvider myCustomAttributeProvider = myLogicalMethodInfo.ReturnTypeCustomAttributeProvider; if(myCustomAttributeProvider.IsDefined(typeof(MyAttribute), true)) { attributes = myCustomAttributeProvider.GetCustomAttributes(true); for(int i = 0; i < attributes.Length; i++) if(attributes[i].GetType().Equals(typeof(MyAttribute))) Console.WriteLine(((MyAttribute)attributes[i]).Name); } // Display all the custom attributes of type 'MyAttribute'. Console.WriteLine("\nDisplaying all attributes of type 'MyAttribute'\n"); myCustomAttributeProvider = myLogicalMethodInfo.CustomAttributeProvider; if(myCustomAttributeProvider.IsDefined(typeof(MyAttribute), true)) { attributes = myCustomAttributeProvider.GetCustomAttributes(true); for(int i = 0; i < attributes.Length; i++) if(attributes[i].GetType().Equals(typeof(MyAttribute))) Console.WriteLine(((MyAttribute)attributes[i]).Name); } } } [C++] #using <mscorlib.dll> #using <System.Web.Services.dll> using namespace System; using namespace System::Reflection; using namespace System::Web::Services::Protocols; // Define a custom attribute with one named parameter. [AttributeUsage(AttributeTargets::Method | AttributeTargets::ReturnValue, AllowMultiple=true)] public __gc class MyAttribute : public Attribute { private: String* myName; public: MyAttribute(String* name) { myName = name; } __property String* get_Name() { return myName; } }; public __gc class MyService { public: [MyAttribute(S"This is the first sample attribute")] [MyAttribute(S"This is the second sample attribute")] [returnvalue:MyAttribute(S"This is the return sample attribute")] int Add(int xValue, int yValue) { return (xValue + yValue); } }; int main() { Type* myType = __typeof(MyService); MethodInfo* myMethodInfo = myType->GetMethod(S"Add"); // Create a synchronous 'LogicalMethodInfo' instance. MethodInfo* temparray [] = {myMethodInfo}; LogicalMethodInfo* myLogicalMethodInfo = (LogicalMethodInfo::Create(temparray, LogicalMethodTypes::Sync))[0]; // Display the method for which the attributes are being displayed. Console::WriteLine(S"\nDisplaying the attributes for the method : {0}\n", myLogicalMethodInfo->MethodInfo); // Displaying a custom attribute of type 'MyAttribute' Console::WriteLine(S"\nDisplaying attribute of type 'MyAttribute'\n"); Object* attribute = myLogicalMethodInfo->GetCustomAttribute(__typeof(MyAttribute)); Console::WriteLine((dynamic_cast<MyAttribute*>(attribute))->Name); // Display all custom attribute of type 'MyAttribute'. Console::WriteLine(S"\nDisplaying all attributes of type 'MyAttribute'\n"); Object* attributes[] = myLogicalMethodInfo->GetCustomAttributes(__typeof(MyAttribute)); for (int i = 0; i < attributes->Length; i++) Console::WriteLine((dynamic_cast<MyAttribute*>(attributes->Item[i]))->Name); // Display all return attributes of type 'MyAttribute'. Console::WriteLine(S"\nDisplaying all return attributes of type 'MyAttribute'\n"); ICustomAttributeProvider* myCustomAttributeProvider = myLogicalMethodInfo->ReturnTypeCustomAttributeProvider; if (myCustomAttributeProvider->IsDefined(__typeof(MyAttribute), true)) { attributes = myCustomAttributeProvider->GetCustomAttributes(true); for (int i = 0; i < attributes->Length; i++) if (attributes->Item[i]->GetType()->Equals(__typeof(MyAttribute))) Console::WriteLine((dynamic_cast<MyAttribute*>(attributes->Item[i]))->Name); } // Display all the custom attributes of type 'MyAttribute'. Console::WriteLine(S"\nDisplaying all attributes of type 'MyAttribute'\n"); myCustomAttributeProvider = myLogicalMethodInfo->CustomAttributeProvider; if (myCustomAttributeProvider->IsDefined(__typeof(MyAttribute), true)) { attributes = myCustomAttributeProvider->GetCustomAttributes(true); for (int i = 0; i < attributes->Length; i++) if (attributes->Item[i]->GetType()->Equals(__typeof(MyAttribute))) Console::WriteLine((dynamic_cast<MyAttribute*>(attributes->Item[i]))->Name); } }
[JScript] No example is available for JScript. To view a Visual Basic, C#, or C++ example, click the Language Filter button
in the upper-left corner of the page.
Requirements
Platforms: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 family, .NET Compact Framework
See Also
LogicalMethodInfo Class | LogicalMethodInfo Members | System.Web.Services.Protocols Namespace
Show: