问题描述
大家好,
关于这个主题有一些问题和答案,但是,没有一个能解决我的问题。我是一个关于c#的新手。
我是一个班级并且有一个字符串值。如果字符串值与类名相同,则从该类创建新对象。
字符串值是基本
和班级名称是基本
我知道解决方案是Assembly.CreateInstance,但它总是为空,无法成功创建任何实例。
名称:TTT Publickeytoken = null
CodeBase:TTT.exe文件的路径
我尝试过:
命名空间TTT
{
public class Basic
{
public string Id {get;组;
public int SourceSystem {get;组; }
}
公共类Message_Tag_Info
{
public string Id {get;组; }
公共字符串ClassCode {get;组; }
公共字符串ClassName {get;组; }
}
class程序
{
static void Main(string [] args)
{
Message_Tag_Info message = new Message_Tag_Info() ;
string tmp =Basic;
message.ClassName = tmp;
类型t = Type.GetType(TTT。+ message.ClassName);
Assembly assem = Assembly.GetAssembly(t);
Console.WriteLine(Name:{0},assem.FullName);
Console.WriteLine(CodeBase:{0},assem.CodeBase);
var obj = Assembly.GetExecutingAssembly()。CreateInstance(message.ClassName);
Console.ReadLine();
}
}
}
Hi all,
There are some questions and answers about this topic but, none of them solve my issue. I am a quite new about c#.
I've a class and had a string value. If the string value same with class name, create new object from that class.
string value is "Basic"
and class name is "Basic"
I know the solution is Assembly.CreateInstance but it always gets null , could not success to create any instance.
Name:TTT Publickeytoken=null
CodeBase: path to TTT.exe file
What I have tried:
namespace TTT { public class Basic { public string Id { get; set; } public int SourceSystem { get; set; } } public class Message_Tag_Info { public string Id { get; set; } public string ClassCode { get; set; } public string ClassName { get; set; } } class Program { static void Main(string[] args) { Message_Tag_Info message = new Message_Tag_Info(); string tmp = "Basic"; message.ClassName = tmp; Type t = Type.GetType("TTT."+message.ClassName); Assembly assem = Assembly.GetAssembly(t); Console.WriteLine("Name: {0}", assem.FullName); Console.WriteLine("CodeBase: {0}", assem.CodeBase); var obj = Assembly.GetExecutingAssembly().CreateInstance(message.ClassName); Console.ReadLine(); } } }
这篇关于从字符串创建对象的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!