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

Serializationについて学ぶ必要があります。

クラス データを文字列に永続化するには、オブジェクトを文字列にシリアル化する必要があります。MyClass文字列からクラス データを取得するには、オブジェクトを文字列から逆シリアル化する必要があります。MyClass

XmlSerializerが役立ちます

于 2013-01-11T17:16:56.500 に答える