给定一个将某些 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 转换为字典中的类型?