我想将某个对象实例中的某些数据传递给它的属性,而且我很难理解如何实现它。这是一个示例:
[AuthenticateAttribute]
public class MyController: Controller
{
UserInfo info;
}
这个想法是AuthenticateAttribute
实例将填充UserInfo实例。
我想将info
的引用传递给AuthenticateAttribute
的实例,从而消除属性与特定MyController
类之间的强耦合。
这可能吗?
答案 0 :(得分:1)
属性本身不应具有UserInfo
字段IMO。请记住,它将应用于类型的属性的一个实例 - 而不是每个该类型的实例。
如果你能给出一个更全面的例子(显示它应用的代码),我们可以提供更多帮助...
答案 1 :(得分:-1)
可以从属性访问控制器的ViewData集合,您可以将UserInfo对象添加到它,然后在控制器的动作中访问它。 您还可以使用包含UserInfo的类型化模型。此方案在此处描述Get permission from Authorize Attribute?
更改应用于该属性的属性中的类型字段并不常见,您必须非常谨慎。