2

を初期化しようとしていますが、この検索AttributeCollectionで​​ Google から適切な提案が得られないようです。

MSDN でここでAttribute説明されているように、型の配列を取る特殊なコンストラクターを使用してオブジェクトを作成することもできますが、その例も見つかりません。

以下に示すように、各属性を個別に追加することで問題を解決できますが、それは直接初期化するほど良くありません。

bzzz["prop1"] = "val_1";
bzzz["prop2"] = "val_2";
...
bzzz["prop8"] = "val_8";
bzzz["prop9"] = "val_9";

のクラスですSystem.ComponentModel

4

2 に答える 2

5

これは完全に合法です:

var attributes = new AttributeCollection();
attributes.Add("key1", "value1");
attributes.Add("key2", 2);
attributes.Add("key3", new EntityReference("contact", Guid.NewGuid()));

var entity = new Entity(){ Attributes = attributes };

編集

すべてを 1 つの C# ステートメントで実行できます。かつては読みにくいと思っていましたが、今では読みやすくなったため、既存の標準を選択するか、個人的な選択に帰着します。

var entity = new Entity()
{
    Attributes = new AttributeCollection() { 
            { "key1", "value1" },
            { "key2", 2 },
            { "key3", new EntityReference("contact", Guid.NewGuid())}
        }
};
于 2012-10-29T13:51:19.413 に答える
0

単純な属性があるとしましょう

public class SimpleAttribute : Attribute
{
    public SimpleAttribute(String val)
    {
        value = val;
    }
    protected String value;    
}

私はこのように追加AttributesAttributeCollectionます。

AttributeCollection attrColl = new AttributeCollection(
   new SimpleAttribute("value1"), new SimpleAttribute("value2"));

唯一のコンストラクターパラメーターはとして宣言されてparamsいるため、コレクションの作成中に複数の属性(コンマで区切る)を渡すことができます。

于 2012-10-22T11:57:55.443 に答える