如何将通过反序列化获得的对象转换为指定为方法参数的类型
public Base GetDerived(MemoryStream stream, Type type)
{
var obj = deserialzer.Deserialize(stream) ;
// return obj as type
}
Run Code Online (Sandbox Code Playgroud)
哪里:
Class Derived: Base {}
Run Code Online (Sandbox Code Playgroud)
和类型参数将是 typeof(Derived)
您可以执行以下操作,而不是将其作为参数传递
public T GetDerived<T>(MemoryStream stream) where T : Base
{
var obj = (T)deserialzer.Deserialize(stream);
// return obj as type
}
Run Code Online (Sandbox Code Playgroud)
通过呼叫
var serialized = obj.GetDerived<MyClass>(stream);
Run Code Online (Sandbox Code Playgroud)
您可以在msdn上阅读有关泛型方法的更多信息
| 归档时间: |
|
| 查看次数: |
55 次 |
| 最近记录: |