C# 从字符串调用对象
可能重复:C# 从字符串调用对象,c#,.net,.net-3.5,C#,.net,.net 3.5,可能重复: 希望这是非常简单的 我希望根据对象名称的字符串表示动态调用该对象。下面是我想做的一个例子: public class Class1 { public string Property1 { get; set; } public string Property2 { get; set; } public string Property3 { get; set; } } public class Class2 { public string Proper
希望这是非常简单的 我希望根据对象名称的字符串表示动态调用该对象。下面是我想做的一个例子:
public class Class1
{
public string Property1 { get; set; }
public string Property2 { get; set; }
public string Property3 { get; set; }
}
public class Class2
{
public string Property1 { get; set; }
public string Property2 { get; set; }
public string Property3 { get; set; }
}
Object cls = Object.GetClassFromString("Class2");
我的目标是从字符串表示调用Class2
(GetClassFromString()
显然是虚构的,但希望能描述我想要做的事情):
然后
cls
将是Class2
中的一个对象,请查看该方法。如果(str==“Class2”)返回新的Class2()代码>?DTB,这看起来很实用。非常感谢。但是,如果我使用的是可以动态调用40多个类的东西。我希望避免为将来可能添加的每个新类添加新的if条件。你对更具活力的方式有什么建议吗?@BenRecord:看看我链接的问题:(你的是这个问题的副本)。这是一个很好的解决方案,不过更好的解决方案可能是重构应用程序,这样您就不需要反射,除非您有某种异国情调的设计。Activator.CreateInstance
就是您要找的(尽管要小心,但您必须使用完全限定的名称,因为类2可以存在于appdomain中加载的不同名称空间和不同程序集中。尽管如此,我还是要提醒您,这样做几乎肯定是一个坏主意。我以前写过动态的应用程序,甚至一次都不依赖它。