通过反射访问 属性 apicontroller
Access to property apicontroller with reflection
我有一个 api-rest 有许多具有属性的控制器:[ApiController],我需要通过反射访问控制器并查看此控制器是否具有此属性。我怎么能那样做?谢谢
这应该让您当前执行的程序集中的所有非抽象控制器继承自 ControllerBase
并实现 ApiControllerAttribute
。如果您想移动某些条件或针对不同的程序集,请随意这样做。
IEnumerable<Type> controllerTypes = Assembly
.GetExecutingAssembly()
.GetTypes()
.Where(type => type.IsClass
&& !type.IsAbstract
&& type.IsSubclassOf(typeof(ControllerBase))
&& type.GetCustomAttribute<ApiControllerAttribute>() != null);
您可以使用以下代码检查特定控制器是否具有 ApiController
属性:
var flag = typeof(ValuesController).GetTypeInfo()
.GetCustomAttribute(typeof(ApiControllerAttribute));
if(flag!=null)
{
//ValuesController have the ApiController attribute
//do your stuff...
}
我有一个 api-rest 有许多具有属性的控制器:[ApiController],我需要通过反射访问控制器并查看此控制器是否具有此属性。我怎么能那样做?谢谢
这应该让您当前执行的程序集中的所有非抽象控制器继承自 ControllerBase
并实现 ApiControllerAttribute
。如果您想移动某些条件或针对不同的程序集,请随意这样做。
IEnumerable<Type> controllerTypes = Assembly
.GetExecutingAssembly()
.GetTypes()
.Where(type => type.IsClass
&& !type.IsAbstract
&& type.IsSubclassOf(typeof(ControllerBase))
&& type.GetCustomAttribute<ApiControllerAttribute>() != null);
您可以使用以下代码检查特定控制器是否具有 ApiController
属性:
var flag = typeof(ValuesController).GetTypeInfo()
.GetCustomAttribute(typeof(ApiControllerAttribute));
if(flag!=null)
{
//ValuesController have the ApiController attribute
//do your stuff...
}