I've got this custom attribute:
[AttributeUsage(AttributeTargets.Method, AllowMultiple=false, Inherited = true)] class MethodTestingAttibute : Attribute { public string Value{ get; private set; } public MethodTestingAttibute (string value) { this.Value= value; } }
To be used like this:
[MethodTestingAttibute("2")] public int m1() {return 3; }
And my difficulty is to take the value of "2" of MethodTestingAttibute
object result = method.Invoke(obj, new Type[] {}); // here i get the return
Now I want to compare this result to the value of MethodTestingAttibute
. How can I do that? I'm trying to go up to this road but without success:
method.GetCustomAttributes(typeof(MethodTestAttibute), true)[0]...
What is the proper way to get access to the field of the custom attribute?
Retrieving a custom attribute is a simple process. First, declare an instance of the attribute you want to retrieve. Then, use the Attribute. GetCustomAttribute method to initialize the new attribute to the value of the attribute you want to retrieve.
Use the target. dataset property to access data attributes from the event object in React. The dataset property provides read and write access to the custom data attributes of the element. The property returns a Map of strings which can be converted to an object.
Custom attributes. A custom attribute is a property that you can define to describe assets. Custom attributes extend the meaning of an asset beyond what you can define with the standard attributes. You can create a custom attribute and assign to it a value that is an integer, a range of integers, or a string.
var attribute = (MethodTestingAttibute) typeof (Vehicles) .GetMethod("m1") .GetCustomAttributes(typeof (MethodTestingAttibute), false).First(); Console.WriteLine(attribute.Value);
With my custom attribute:
[AttributeUsage(AttributeTargets.Method)] public class AttributeCustom : Attribute { public string MyPropertyAttribute { get; private set; } public AttributeCustom(string myproperty) { this.MyPropertyAttribute = myproperty; } }
I create a method for to get attribute with his values:
public static AttributeCustom GetAttributeCustom<T>(string method) where T : class { try { return ((AttributeCustom)typeof(T).GetMethod(method).GetCustomAttributes(typeof(AttributeCustom), false).FirstOrDefault()); } catch(SystemException) { return null; } }
With a example class (must be not static because T is generic)
public class MyClass { [AttributeCustom("value test attribute")]) public void MyMethod() { //... } }
Usage:
var customAttribute = GetAttributeCustom<MyClass>("MyMethod"); if (customAttribute != null) { Console.WriteLine(customAttribute.MyPropertyAttribute); }
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With