C# 如何初始化AttributeCollection的实例?

C# 如何初始化AttributeCollection的实例?,c#,C#,我正在尝试初始化一个属性集合,但我似乎没有从Google获得任何好的建议 我还可以使用专门的构造函数创建对象,该构造函数采用所述类型为Attribute的数组,但我也找不到任何这样的示例 我可以通过添加每个属性来解决这个问题,如下所示,但这不如直接初始化它好 bzzz["prop1"] = "val_1"; bzzz["prop2"] = "val_2"; ... bzzz["prop8"] = "val_8"; bzzz["prop9"] = "val_9"; 它是System.Compon

我正在尝试初始化一个
属性集合
,但我似乎没有从Google获得任何好的建议

我还可以使用专门的构造函数创建对象,该构造函数采用所述类型为
Attribute
的数组,但我也找不到任何这样的示例

我可以通过添加每个属性来解决这个问题,如下所示,但这不如直接初始化它好

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

它是
System.ComponentModel
中的类,假设我有一个简单的属性

public class SimpleAttribute : Attribute
{
    public SimpleAttribute(String val)
    {
        value = val;
    }
    protected String value;    
}
我会像这样向
AttributeCollection
添加
Attributes

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

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

假设我有一个简单的属性

public class SimpleAttribute : Attribute
{
    public SimpleAttribute(String val)
    {
        value = val;
    }
    protected String value;    
}
我会像这样向
AttributeCollection
添加
Attributes

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

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

这是完全合法的:

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())}
        }
};

这是完全合法的:

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())}
        }
};

系统组件模型?或System.Web.UI?请参见编辑。我链接到的文章是针对
System.ComponentModel
的,但除非单击它,否则无法看到它。我在编辑器中看到了它,但忘了区分.System.ComponentModel?或System.Web.UI?请参见编辑。我链接到的文章是针对
System.ComponentModel
的,但除非单击它,否则无法看到它。我在编辑器中看到了它,但忘记了进行区分。我不是从
属性
类继承的。我正在为CRM Dynamics创建一个新的
实体实例
,在这里,我想插入一个新的、已填充的
属性集合
实例。它可行吗?我不是从
属性
类继承的。我正在为CRM Dynamics创建一个新的
实体实例
,在这里,我想插入一个新的、已填充的
属性集合
实例。是否可行?是否有一种方法可以立即初始化整个沙邦。也就是说,没有在初始值设定项之前而是在初始值设定项内部创建
属性
变量?这与代码无关,但我非常好奇。谢谢你的回答,顺便说一句,伙计。有没有办法一次初始化整个沙邦。也就是说,没有在初始值设定项之前而是在初始值设定项内部创建
属性
变量?这与代码无关,但我非常好奇。谢谢你的回答,顺便说一句,伙计。