Chr*_*isK 6 c# generics windows-runtime
你好,我有一个通用方法
public async Task<T> MyMethod<T>(...)
{
//logic here...
}
Run Code Online (Sandbox Code Playgroud)
我想在此方法中检查 T 对象是否具有特定属性,然后为此属性设置一个值:
我尝试创建一个动态对象并执行以下操作:
var result = default(T);
dynamic obj = result;
Error error = new Error();
error.Message = "An error occured, please try again later.";
error.Name = "Error";
obj.Errors.Add(error);
result = obj;
return result;
Run Code Online (Sandbox Code Playgroud)
但它似乎不起作用。
您应该使用 获取对象的运行时类型object.GetType,然后您可以使用 来检查它是否具有特定属性Type.GetProperty,如果是,则调用PropertyInfo.SetValue:
PropertyInfo pi = obj.GetType().GetProperty("PropertyName");
if (pi != null)
{
pi.SetValue(obj, value);
}
Run Code Online (Sandbox Code Playgroud)