Ari*_*oth 0 c# string reflection
我已经看到了一些类似于这个的问题,但是他们都没有问过我想要的东西.基本上,给定一个字符串,我想通过反射得到该字符串的值.
我知道这听起来很奇怪,但我正在编写一个通用的方法来转储对象的所有公共属性,而string是一个特例,因为它的值与它所组成的连接字符数组真的相同.
所以,我的代码是这样的:
var obj = "foo";
var props = obj.GetType().GetProperties();
// I now have two properties -- length and a character array
foreach (var prop in props)
{
if (prop.PropertyType.IsArray || prop.GetIndexParameters().Length > 0)
{
lines.Add(tabs + prop.Name + "(array)");
lines.Add(tabs + "\t" + prop.GetValue(target, new object[] { 0 }));
}
else
Console.WriteLine(prop.Name + ": " + prop.GetValue(obj, null));
}
Run Code Online (Sandbox Code Playgroud)
这输出如下:
Chars(array)
f
Length: 3
Run Code Online (Sandbox Code Playgroud)
这一切都很好,但有没有一种方法可以从中获得实际的"foo"值而不需要通过数组并连接它?
谢谢!
-Ari
if (obj is string)
Console.WriteLine(obj);
else
... use reflection
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
217 次 |
| 最近记录: |