如何使用getpropertyvalueses安全地从CommonLibrary.NET

本文关键字:CommonLibrary NET 安全 何使用 getpropertyvalueses | 更新日期: 2023-09-27 18:11:55

使用CommonLibrary时。Net,如何正确使用GetPropertyValueSafely()函数?

我想这样做:

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

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

public static Object GetPropertyValueSafely(
    Object obj,
    PropertyInfo propInfo
)

以下是参数要求:

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

propInfo Type: 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();

…可编译,但会从库抛出运行时类型错误。

谢谢你的帮助(我才刚刚开始想这些东西)

如何使用getpropertyvalueses安全地从CommonLibrary.NET

试试这样:

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

NB:从技术上讲,将new object()传递给PropertyInfoGetValue方法应该抛出一个TargetException。然而,由于这是一个静态属性,它似乎可以工作。