0

System.Collections.Generic.List から継承する ArrayOfString というカスタム タイプを使用するサード パーティの Web API があります。List を動的に生成して ArrayOfString を返すメソッドを作成しようとしていますが、正しく行う方法がわかりません。

// Definition of ArrayOfString in API
public class ArrayOfString : System.Collections.Generic.List<string> {}


// Working Example with Static elements
public ArrayOfString GetPropertiesAsArrayOfString()
{
  ArrayOfString properties = new ArrayOfString()
  {
    "Name|String",
    "Description|String",  
    "InventoryLevel|Int32", 
    "Sku|String", 
    "UpdatedAt|DateTime" 
  };

  return properties;
}


// Trying to initialize the ArrayofString from a collection instead of from static strings. 

// Dynamically generated List<string>
List<string> items = new List<string>() { "Name|String", "Description|String", ect... };

ArrayOfString properties = new ArrayOfString(items)

上記のコードは、ArrayOfString に 1 つの引数を取るコンストラクターが含まれていないことを示すエラーを出しますが、これは理にかなっていますが、カスタム型を初期化する他の方法がわかりません。どんな助けや提案も大歓迎です。

4

1 に答える 1

0

質問を未回答のままにしたくなかった。私が開発した最終的な基本クラスは次のようになります。

ご協力いただきありがとうございます。

public class BaseType
{
  public ArrayOfString GetPropertiesAsArrayOfString(Type type)
  {
    PropertyInfo[] propertyInfos = type.GetProperties();
    List<string> items = new List<string>();
    string propertyType = string.empty;

    for (int x = 0; x < propertyInfos.count(); x++)
    {

      switch propertyInfos[x].PropertyType.ToString())
      {
        case "System.String":
             propertyType = "String";
             break;
        case "System.DataTime":
             propertyType = "DateTime";
             break;
        case "System.Int32":
             propertyType = "Int32";
             break;
      }

      items.Add(propertyInfos[x].Name + "|" + propertyType);
    }

    ArrayOfString properties = new ArrayOfString();
    properties.AddRange(items);
    return properties
  }
}  
于 2013-03-05T09:26:15.683 に答える