[英]Using a parameter of type Type for casting
How can I cast a object obtained by deserialization into a type that is specified as the method parameter 如何将通过反序列化获得的对象转换为指定为方法参数的类型
public Base GetDerived(MemoryStream stream, Type type)
{
var obj = deserialzer.Deserialize(stream) ;
// return obj as type
}
where: 哪里:
Class Derived: Base {}
and type argument would be typeof(Derived)
和类型参数将是
typeof(Derived)
Instead of passing it is as a parameter, you can do the following 您可以执行以下操作,而不是将其作为参数传递:
public T GetDerived<T>(MemoryStream stream) where T : Base
{
var obj = (T)deserialzer.Deserialize(stream);
// return obj as type
}
called via 通过
var serialized = obj.GetDerived<MyClass>(stream);
You can read more about generic methods on msdn 您可以在msdn上阅读有关通用方法的更多信息
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.