我在这里遇到了问题。 (C#)
另一个程序集中有一个集合(我无法更改它),它将一个字符串作为参数并返回一个对象。
像:
object Value = ThatCollection.GetValue("ParameterName");
问题是,对于每个参数字符串,它返回一个DIFFERENT类型作为对象。 我想要的是将这些对象转换为各自的类型,只在运行时通过字符串名称知道类型。
我需要对返回的值进行一些操作。 为此,我需要正确地投射它们才能访问其成员等。
限制:
任何提示??
答案 0 :(得分:0)
您想要查看反射,类似下面的内容应该可以将对象强制转换为类型T.设置一个简单的强制转换方法:
public static T CastToType<T>(object o)
{
return (T)o;
}
使用反射调用此方法:
Type t = Type.GetType(stringName)
MethodInfo castTypeMethod = this.GetType().GetMethod("CastToType").MakeGenericMethod(t);
object castedObject = castTypeMethod .Invoke(null, new object[] { obj });