使用Type类型的参数进行投射

时间:2015-03-09 07:49:21

标签: c# .net casting

如何将通过反序列化获得的对象转换为指定为方法参数

的类型
public Base GetDerived(MemoryStream stream, Type type)
{
   var obj = deserialzer.Deserialize(stream)  ;
   // return obj as type
}

其中:

Class Derived: Base {}

和类型参数将是typeof(Derived)

1 个答案:

答案 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

的更多信息