2

我正在尝试初始化一个,AttributeCollection但我似乎没有从谷歌得到这个搜索的好建议。

我也愿意使用专门的构造函数创建对象,该构造函数采用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 };

编辑

您可以在一个 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;    
}

我会添加Attributes这样的AttributeCollection

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

唯一的构造函数参数声明为params,因此您可以在构造集合时传递多个属性(用逗号分隔)。

于 2012-10-22T11:57:55.443 回答