C# 尝试动态创建对象的实例

C# 尝试动态创建对象的实例,c#,oop,reflection,C#,Oop,Reflection,正在获取以下错误 错误1无法将类型“object”隐式转换为 “CSV\u OOP\u Convert.FileConverter”。存在显式转换(正在进行) 你错过了一场比赛 cast?\server\UserShares\DBell\VSC\CSV\u OOP\u Convert\CSV\u OOP\u Convert\Form1.cs 44 39 CSV\u OOP\u Convert cmbConversionAlgorithm包含我希望创建实例的类的正确名称 当我正常创建它时,它工作得

正在获取以下错误

错误1无法将类型“object”隐式转换为 “CSV\u OOP\u Convert.FileConverter”。存在显式转换(正在进行) 你错过了一场比赛 cast?\server\UserShares\DBell\VSC\CSV\u OOP\u Convert\CSV\u OOP\u Convert\Form1.cs 44 39 CSV\u OOP\u Convert

cmbConversionAlgorithm包含我希望创建实例的类的正确名称

当我正常创建它时,它工作得很好

CSV_OOP_Convert.TFConverter tfc = new CSV_OOP_Convert.TFConverter();

激活器返回一个对象

试着这样做:

String className = cmbConversionAlgorithm.Text;
string namespaceName = "CSV_OOP_Convert";

Object myObj =Activator.CreateInstance(Type.GetType(namespaceName + "." + className));

ConvertFile((FileConverter)myObj);
返回类型为
object
的对象,因此它是完全不特定的类型。为了将其分配给更特定类型的变量,需要进行显式类型转换:

FileConverter myObj = (FileConverter)Activator.CreateInstance(type);

将结果强制转换为FileConverter类

var myObj =Activator.CreateInstance(Type.GetType(namespaceName + "." + className)) as FileConverter;

CreateInstance
返回一个
对象
,您需要强制转换:
FileConverter myObj=(FileConverter)Activator.CreateInstance(…)
4等于答案。。。它是重复的:):)
var myObj =Activator.CreateInstance(Type.GetType(namespaceName + "." + className)) as FileConverter;