visual una studio standard sintaxis net herencia framework ejercicios ejemplos crear como clases clase biblioteca atributos c# attributes .net-core custom-attributes

una - ejercicios herencia c#



FunciĆ³n de ejecuciĆ³n/rechazo basada en el valor del atributo de aduana en dotnet core C# (1)

su solución es encontrar el método declarado y en ese método encontrar el atributo.

var customAttributes = (MyCustomAttribute[])((typeof(Foo).GetTypeInfo()) .DeclaredMethods.Where(x => x.Name == "fn") .FirstOrDefault()) .GetCustomAttributes(typeof(MyCustomAttribute), true);

Intento aprender los atributos en C # dotnet core, así que escribí las 2 clases siguientes.

  1. Attribute class :

    using System; namespace attribute { // [AttributeUsage(AttributeTargets.Class)] [AttributeUsage(AttributeTargets.All)] public class MyCustomAttribute : Attribute { public string SomeProperty { get; set; } } //[MyCustom(SomeProperty = "foo bar")] public class Foo { [MyCustom(SomeProperty = "user")] internal static void fn() { Console.WriteLine("hi"); } } }

  2. Main class :

    using System; using System.Reflection; namespace attribute { public class Program { public static int Main(string[] args) { var customAttributes = (MyCustomAttribute[])typeof(Foo).GetTypeInfo().GetCustomAttributes(typeof(MyCustomAttribute), true); if (customAttributes.Length > 0) { var myAttribute = customAttributes[0]; string value = myAttribute.SomeProperty; // TODO: Do something with the value Console.WriteLine(value); if (value == "bar") Foo.fn(); else Console.WriteLine("Unauthorized"); } return 0; } } }

Necesito que se Foo.fn() la función Foo.fn() si el elemento SomeProperty en MyCustomAttribute es igual a la bar . Mi código funciona bien si lo apliqué al class level , pero no funciona en el function level

NOTA IMPORTANTE : Soy muy nuevo en esto, por lo que cualquier consejo o comentario para mejorar mi código es bienvenido. Gracias