我正在尝试初始化AttributeCollection
但我似乎没有得到Google提出this search的好建议。
我也打开使用专门的构造函数创建对象,该构造函数采用类型Attribute
的数组,如here on MSDN所述,但我也找不到任何示例。
我可以通过自己添加每个属性来解决这个问题,如下所示,但这不如直接初始化它那么好。
bzzz["prop1"] = "val_1";
bzzz["prop2"] = "val_2";
...
bzzz["prop8"] = "val_8";
bzzz["prop9"] = "val_9";
这是System.ComponentModel
中的课程。
答案 0 :(得分:4)
这是完全合法的:
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())}
}
};
答案 1 :(得分: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
,因此您可以在构建集合时传递多个属性(以逗号分隔)。