如何将通过反序列化获得的对象转换为指定为方法参数
的类型public Base GetDerived(MemoryStream stream, Type type)
{
var obj = deserialzer.Deserialize(stream) ;
// return obj as type
}
其中:
Class Derived: Base {}
和类型参数将是typeof(Derived)
答案 0 :(得分:6)
您可以执行以下操作,而不是传递它作为参数。
public T GetDerived<T>(MemoryStream stream) where T : Base
{
var obj = (T)deserialzer.Deserialize(stream);
// return obj as type
}
通过
调用var serialized = obj.GetDerived<MyClass>(stream);
您可以阅读有关通用方法on msdn
的更多信息