3

パラメータとして 3 つの文字列を受け取り、これらの文字列を参照する 3 つのプロパティを含むオブジェクトを返すメソッドを作成したいと思います。

レプリケートする「古いオブジェクト」はありません。プロパティは、このメソッドで作成する必要があります。

リフレクションを使用して C# でこれを行うには? もしそうなら、どのように?以下はあなたが好きなもので、私にはできません。

protected Object getNewObject(String name, String phone, String email)
{
    Object newObject = new Object();

    ... //I can not add the variables that received by the object parameter here.

    return newObject();
}
4

3 に答える 3

4

プロパティ、フィールドなどを動的に追加する場合は、Expandoクラスを使用してみてください。

http://msdn.microsoft.com/en-us/library/system.dynamic.expandoobject.aspx

 dynamic newObject = new ExpandoObject();

 newObject.name = name;
 newObject.phone = phone; 
 newObject.email = email
于 2013-08-19T11:11:37.570 に答える
1

Expando オブジェクトを使用した完全な例は次のようになります。

protected dynamic getNewObject(String name, String phone, String email)
    {


        // ... //I can not add the variables that received by the object parameter here.
        dynamic ex = new ExpandoObject();
        ex.Name = name;
        ex.Phone = phone;
        ex.Email = email;
        return ex;
    }

    private void button1_Click_2(object sender, EventArgs e)
    {
        var ye = getNewObject("1", "2", "3");
        Console.WriteLine(string.Format("Name = {0},Phone = {1},Email={2}", ye.Name, ye.Phone, ye.Email));
    }
于 2013-08-19T11:21:48.567 に答える