是否有一种从字符串创建UserControl的简洁方法?
我想避免这样的硬编码:
if (tool.ToolName == "Image_Tool") { ctl = new Image_Tool() as UserControl; }
Image_Tool是现有的UserControl。从解析文件夹中检索ToolName以获取UserControl的文件名。
愿意做这样的事情:
UserControl ctl = new tool.toolName() as UserControl
那是“天上的馅饼”吗? PHP有一种方法可以将字符串转换为变量......想知道C#是否有某种方法可以做到这一点?
感谢。
汉斯,尝试了你的建议,但现在获得了此代码的TypeLoadException:
ObjectHandle handle = Activator.CreateInstance("AutomationSystem", tool.ToolName);
Object o = handle.Unwrap();
ctl = o as UserControl;
这是一个Windows应用程序,而不是一个Web应用程序,因此不存在dll,只有exe。
答案 0 :(得分:0)
所以汉斯是对的。我的命名空间错误。以下是我解决这个问题的方法:
ObjectHandle handle = Activator.CreateInstance(null, "AutomationSystem.Toolbox."+tool.ToolName);
Object o = handle.Unwrap();
ctl = o as UserControl;