0

可能重复:
从字符串名称在程序集中创建类实例

使用类型的字符串表示MyClass我想MyClass从它的字符串表示中创建一个实例。

请参阅我的代码中的注释:

interface MyData
{
    string Value { get; }
}

class MyClass : MyData
{
    public MyClass(string s)
    {
        Value = s;
    }

    public string Value { get; private set; }

    public static explicit operator MyClass(string strRep)
    {
        return new MyClass(strRep);
    }

    public static implicit operator string(MyClass inst)
    {
        return inst.Value;
    }
}

class Program
{
    static void Main(string[] args)
    {
        MyClass inst = new MyClass("Hello World");

        string instStr = inst; //string representation of MyClass
        string instTypeStr = inst.GetType().FullName;

        // I want to be able to do this:
        MyData copyInst = (instTypeStr)instStr; // this would throw an error if instTypeStr did not inherit MyData

        // Then eventually:
        if (instTypeStr.Equals("MyClass"))
        {
            MyClass = (MyClass)copyInst;
        }
    }
}
4

2 回答 2

0

你可以使用Activator.CreateInstance方法

链接: http: //msdn.microsoft.com/fr-fr/library/d133hta4 (v=vs.80).aspx

于 2013-01-11T16:48:39.463 回答
0

您应该了解序列化

要将您的类数据保存为字符串,您应该将您的对象序列化为字符串。MyClass要从字符串中检索您的类数据,您应该从字符串中反序列化您的MyClass对象。

XmlSerializer将为您提供帮助

于 2013-01-11T17:16:56.500 回答