![](/img/trans.png)
[英]How to get string array values, i.e. passed as a parameter in an object array?
[英]How to get a string name to resolve to an object (i.e. in the sense of what it is)
例如,我可以做类似的事情:
switch (myString)
case "rectangle":
o = new rect();
break;
case "ellipse"
etc...
但是我怎么不做上面的事情,即只有一行代码直接从字符串中获取对象。 想象一下,例如,一个按钮以及用户点击它时所说的任何内容,它会显示所显示的文本并从中创建一个对象。
如果名称与字符串完全相同 ,则可以执行以下操作:
using System;
using System.Reflection;
class Example
{
static void Main()
{
var assemblyName = Assembly.GetExecutingAssembly().FullName;
var o = Activator.CreateInstance(assemblyName, "Example").Unwrap();
}
}
一个更简单的方法看起来像这样:
using System;
using System.Reflection;
class Example
{
static void Main()
{
var type = Assembly.GetExecutingAssembly().GetType("Example");
var o = Activator.CreateInstance(type);
}
}
但请记住,这是一个非常简单的示例,它不涉及名称空间,强名称程序集或大型项目中出现的任何其他复杂事物。
他说,
你有没有尝试过Activator.CreateInstace(“assemblyname”,“typename”);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.