Mat*_*ton 13
您可以使用匿名类型和反射作为命名参数的变通方法:
public void Foo<T>(T parameters)
{
var dict = typeof(T).GetProperties()
.ToDictionary(p => p.Name,
p => p.GetValue(parameters, null));
if (dict.ContainsKey("Message"))
{
Console.WriteLine(dict["Message"]);
}
}
Run Code Online (Sandbox Code Playgroud)
所以现在我可以像这样打电话给Foo:
Foo(new { Message = "Hello World" });
Run Code Online (Sandbox Code Playgroud)
......它会写下我的信息.
基本上我从传递的匿名类型中提取所有属性,并将它们转换为字符串和对象的字典(属性的名称及其值).
归档时间: |
|
查看次数: |
5266 次 |
最近记录: |