J'ai l'assemblage A
, où se trouve MyCustomAttribute
.Récupérer des attributs personnalisés sur des assemblages
Maintenant je Assemblée B
, où je reference
à l'assemblage A
et je l'utilise dans l'assemblage B
MyCustomAttribute
.
Maintenant, je veux obtenir tous inctanses de MyCustomAttribute
dans Assebmly B.
J'essaie quelque chose comme:
public static void Registration()
{
List<MyCustomAttribute> atrr = new List<MyCustomAttribute>();
var assembly = System.Reflection.Assembly.GetCallingAssembly();
var types = (from type in assembly.GetTypes()
where Attribute.IsDefined(type, typeof(MyCustomAttribute))
select type).ToList();
}
Et d'autres moyens - mais je ne peux pas obtenir MyCustomAttribute
.
MISE À JOUR
Mon attribut
namespace NamespaceOne.Attributes
{
[AttributeUsageAttribute(AttributeTargets.Method, AllowMultiple = false,
Inherited = false)]
public class MyCustomAttribute: Attribute
{
......
}
}
Now the second Assembly(second project - ASP WebApi):
namespace SecondNamespace.Controllers
{
public class HomeController : Controller
{
[MyCustomAttribute]
public ActionResult Index()
{
MyStaticMethod.Registration(); // THIS Class andmethod in First class library - where located attribute
ViewBag.Title = "Home Page";
return View();
}
Avez-vous vérifié que 'GetCallingAssembly()' retourne effectivement 'B'? –
Oui. Mais à l'intérieur je ne vois pas mon attribut personnalisé –
Pourriez-vous montrer votre attribut, ainsi que le type qui l'implémente? – Bauss