我有这个通用扩展函数,它将具有特定父类型的对象转换为子类型(在此处找到代码:无法从父类转换为子类):
public static U ParentToChild<T, U>(this T parent) {
if(!typeof(U).IsSubclassOf(typeof(T)))
throw new Exception(typeof(U).Name + " isn't a subclass of " + typeof(T).Name);
var serializedParent = JsonConvert.SerializeObject(parent);
return JsonConvert.DeserializeObject<U>(serializedParent);
}
因此,当我调用此函数时,我需要指定 Parent 和 Child 类类型,例如:
Child child = parent.ParentToChild<Parent, Child>();
有什么办法可以避免“父”精度?
我想写这个:
Child child = parent.ParentToChild<Child>();