我需要像Dictionary这样的东西,其中dynamic可以是从字符串到对象的任何东西。
但是当我使用对象时,我需要知道对象的类型,然后访问这些对象的相应属性。
有没有办法不使用反射。
* 已编辑**
我试着用这个:
CloneObject<T, TU>(IDictionary<T, TU> sourceObject)
但如果我使用它,如何在不使用反射的情况下访问T的公共字段
答案 0 :(得分:1)
答案 1 :(得分:0)
我有点困惑。您试图在字典中存储任何类型的对象,但在没有反射的情况下访问它们。
如果是这样,您可以使用dynamic
类型:
Dictionary dict = new Dictionary();
dict["string"] = "some string";
dict["int"] = 25;
dict["my_class"] = new MyClass {SomeProperty = 12};
然后你可以访问所有这些值而不需要任何强制转换:
string s1 = dict["string"].Substring(0, 4); // s1 equals to "some"
int propertyValue = dict["my_class"].SomeProperty; // propertyValue equals to 12
MyClass在哪里:
class MyClass
{
public int SomeProperty {get;set;}
}
答案 2 :(得分:0)
不使用反射,此任务无法完成。我所做的就是分别创建对象克隆,然后使用它们。