0

使用CommonLibrary.Net时,如何GetPropertyValueSafely()正确使用该功能?

我想做这样的事情:

public static string APP_TITLE = ComLib.ReflectionHelper.GetPropertyValueSafely(Application.ProductName);

但我需要添加第二个参数,我还不够了解,不知道要求什么。以下是文档文件中的语法用法:

public static Object GetPropertyValueSafely(
    Object obj,
    PropertyInfo propInfo
)

这是参数要求:

参数 obj 类型:System..::..Object 要检索其属性的对象。

propInfo 类型:System.Reflection..::..PropertyInfo 属性名称。

那我放object什么?我也试过这个:

public static string APP_TITLE;
ComLib.ReflectionHelper.GetPropertyValueSafely(APP_TITLE, Application.ProductName);

但这也不是答案。

我也试过这个:

public static string APP_TITLE = ComLib.Reflection.ReflectionUtils.GetPropertyValue((object)APP_TITLE, Application.ProductName).ToString();

...编译,但它从库中引发运行时类型错误。

感谢您的帮助(我刚刚开始将这些东西记入脑海)。

4

1 回答 1

1

尝试这样的事情:

public static readonly string APP_TITLE = (string)ComLib.ReflectionHelper.GetPropertyValueSafely(new object(), 
    ComLib.Reflection.ReflectionUtils.GetProperty(typeof(Application), "ProductName"));

注意:从技术上讲,传递new object()PropertyInfo'GetValue方法应该抛出一个TargetException. 但是,由于这是一个静态属性,它似乎可以工作。

于 2013-05-02T15:34:23.533 回答