C# 使用ObservableCollection的反射实例
我在处理反射的东西,我遇到了一个关于ObservaleCollection的反射实例的问题。我的意思是,如果创建一个新的实例:C# 使用ObservableCollection的反射实例,c#,.net,reflection,runtime,activator,C#,.net,Reflection,Runtime,Activator,我在处理反射的东西,我遇到了一个关于ObservaleCollection的反射实例的问题。我的意思是,如果创建一个新的实例: Type virtualObservable = typeof(ObservableCollection<>); object observable = virtualObservable.MakeGenericType(genericType) Type virtualObservable=typeof(observeCollection); objec
Type virtualObservable = typeof(ObservableCollection<>);
object observable = virtualObservable.MakeGenericType(genericType)
Type virtualObservable=typeof(observeCollection);
object observable=VirtualLobservable.MakeGenericType(genericType)
我有一个对象,但我不能像一个可观察的集合那样使用它,这就是我需要的
有线索吗?有三种可能:
genericType
,则使用该类型的作为泛型参数,将MakeGenericType
的返回值强制转换为observeCollection
动态
,而不是对象
observable
强制转换为所需的类型,即,如果要注册CollectionChanged
事件,请将其强制转换为INotifyCollectionChanged
。如果要对其进行迭代,请将其强制转换为IEnumerable
如果要向集合中添加新项目,需要将其强制转换为
ICollection
,并使用非通用的add
方法:
ICollection tmp = (ICollection)observable;
tmp.Add(yourObject);
是的,我不想在编译时知道类型。动态似乎很有趣,但我更感兴趣的是转换到接口。如果我想使用标准的add()方法向集合中添加元素,该怎么办?