将对象实例数据传递给Attribute

时间:2009-12-27 10:27:20

标签: asp.net-mvc class-attributes

我想将某个对象实例中的某些数据传递给它的属性,而且我很难理解如何实现它。这是一个示例:

[AuthenticateAttribute]
public class MyController: Controller
{
    UserInfo info;
}

这个想法是AuthenticateAttribute实例将填充UserInfo实例。

我想将info的引用传递给AuthenticateAttribute的实例,从而消除属性与特定MyController类之间的强耦合。

这可能吗?

2 个答案:

答案 0 :(得分:1)

属性本身不应具有UserInfo字段IMO。请记住,它将应用于类型的属性的一个实例 - 而不是每个该类型的实例。

如果你能给出一个更全面的例子(显示它应用的代码),我们可以提供更多帮助...

答案 1 :(得分:-1)

可以从属性访问控制器的ViewData集合,您可以将UserInfo对象添加到它,然后在控制器的动作中访问它。 您还可以使用包含UserInfo的类型化模型。此方案在此处描述Get permission from Authorize Attribute?

更改应用于该属性的属性中的类型字段并不常见,您必须非常谨慎。