在运行时解析静态属性

时间:2017-11-10 12:14:16

标签: c# dynamic

我需要创建一个解决方案,其中C#类型的静态属性是在运行时而不是编译时确定的。需要通过反射发现这些运行时属性,例如使用:

Type mytype =type(MyType);
mytype .GetProperty(this._errorMessageResourceName, BindingFlags.Public | BindingFlags.Static | BindingFlags.NonPublic);

到目前为止,我已经调查了以下内容:

DynamicObjects:

C#中的DynamicObject是否可以拦截静态属性的请求?

如果通过反射调用TryGetMember方法似乎没有拦截方法,而且我可以通过VS intellisense告诉我,DynamicObject可能不适用于静态。

ICustomTypeDescriptor

这存在于System.ComponentModel.DataAnnotations命名空间中,仅适用于数据绑定情况,我需要一个适用于一般.NET运行时的解决方案。

修改/覆盖RunTimeType

通过.NET代码,似乎这可能是一个选项(因为System.Type是抽象的)但我无法弄清楚如何生成此类型或如何覆盖加载的类型。 (也许这是个坏主意)。

0 个答案:

没有答案