2012-11-02 27 views
0

我有一个实现了IExtenderProvider的组件。一个属性包含的设置应该与用户在其项目中使用的组件的每个实例相同。 (也可在每个实例编辑)设计时组件属性的共享数据

什么是在设计时分享用户控件的几个实例的信息的常见方式?要手动将其写入app.config是没有解决方案,因为我需要此设置的GUI。

在此先感谢

Findnix

如果在设计时是刚需物业所提到的静态属性的伟大工程,但对我来说也是运行时所需要的性能。 在这种情况下,每个实例都将在其设计时设置的值设置为静态属性。这意味着该值取决于实例的初始化顺序。

实施例:

在设计时:

添加组分,以形成图1和其值设置为“Form1中”

添加组分,以形成图2和的值设置为“窗体2”

现在在设计器中的值为两个实例的“Form2”,但是在运行时,如果两个表单都被加载,则值始终是 作为最后一个加载的值。

这是因为设计者不会更改实例的初始值。

+0

您可以将属性值不存储在实例变量中,而是存储在静态变量中。这肯定会有助于在实例之间共享相同的值。 –

回答

0

为了使财产是共同的所有实例每个实例,你可以做这样的事情:

class MyObject 
{ 
    // static members are common to all instances 
    static string DefaultProperty1 = "Some Default"; 

    private string _Property1; 
    public string Property1 
    { 
     get 
     { 
      // If the backing field is NULL, return the default 
      if (_Property1 == null) 
       return DefaultProperty1; 
      // Otherwise, return the per-instance value 
      return _Property1; 
     } 
     set { _Property1 = value; } 
    } 
} 

DefaultProperty1也可能是一个属性,如果你想要的是多变的。