[英]Cast to Type from Config
给定一个将某些ID映射为类型的字典:
Dictionary<int, Type> processIdToTypeMapping
我正在尝试遍历字典并将对象转换为字典中指定的类型。 该对象来自MSMQ。
这是我迭代字典的方式:
foreach (KeyValuePair<int, Type> processIdToType in processIdToTypeMapping)
我尝试使用泛型:
private void CreateObject<T>()
{
FooBase fooBase = message.Body as T;
}
但这需要在编译时知道类型。 我不能这样调用CreateObject():
CreateObject<typeof(processIdToType.Value)>(); // That can't work.
我尝试使用ChangeType():
private void CreateObject(Type fooType)
{
FooBase fooBase = Convert.ChangeType(message.Body, fooType);
}
但是我收到一个编译时错误,它无法转换。
我尝试为 :
private void CreateObject(Type fooType)
{
FooBase fooBase = message.Body as typeof(fooType);
}
如何将message.Body转换为字典中的类型?
从注释中,您仅尝试进行动态类型检查,因此幸运的是,不需要动态转换。
if(message.Body != null && message.Body.GetType() == fooType) ...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.