.NET反射在我的运行时对象上设置属性

时间:2014-06-24 09:01:04

标签: c# .net asp.net-mvc reflection attributes

我有一个ASP.NET MVC项目,我需要读取一个动态表并在Grid中显示它。

我的框架支持将静态类型绑定到Grids,只需向静态类型属性添加属性即可。 [Grid],[Key],[GridColumn(Name =“Id”,Order = 1,IsHidden = true)]

因此,我正在使用反射构建一个动态对象,并且我正在分配所有必需的元数据,以允许框架读取我的动态对象Grid。

虽然我已经设法用反射分配所有没有属性的必需属性,但我想我知道如何对带有构造函数参数的属性进行操作,我很难设置Name,Order,IsHidden的属性。 GridColumnAttribute(不接受框架中的参数)

你知道这样做吗?

我发现How to set attributes values using reflection中的Jon提到它是不可能的,但是为什么可以用构造函数参数而不是属性的公共属性来做呢?

如果您认为有可能,我会很感激代码示例。

非常感谢

1 个答案:

答案 0 :(得分:0)

我不知道如何证明这是不可能的......但如果反思可能改变,那会以某种方式吓到我,例如被动安全检查。

[PrincipalPermission(Security.Demand, Role="BUILTIN\\Administrators"]
void SomeVerySecuredStuff()
{
   //...
}

我可能不是最值得信赖的反思来源,但我真的希望无法实现。