我需要从不知道类型的对象调用DeepClone()方法。如何转换为未知类型,需要转换为GenericType,但T未知
object x = GetObject();
var x2 = x as IDeepCloneable<??????>;//What can I do here???
var clone = x2.DeepClone();
public interface IDeepCloneable<T>
{
T DeepClone();
}
我试图创建一个新的“基地”界面,并添加“:IDeepCloneable”的泛型类。
public interface IDeepCloneable
{
object DeepClone();
}
但在这种情况下,我需要改变)在T DeepClone派生接口的方法(;到新的T DeepClone();.其结果是,所有的类已经实现IDeepCloneable < T>将无法编译..
如果你是NET 4.0,你可以使用'dynamic'来代替 – Mgetz
@Mgetz不是真的... – Servy
@Servy我已经完成了它...也可以使用[Type.MakeGenericType](http://msdn.microsoft.com /en-us/library/system.type.makegenerictype.aspx)在这里...它可以让你做一个专业化的生成ic在运行时并将其分配给动态。 – Mgetz