2010-07-23 40 views
2

我怎样才能将属性添加到这是在其他组件创建的模型。我们有许多应用程序,从桌面应用程序到Web应用程序,因此我需要每个模型都需要的类库以及它们之间的关系。我很容易引用我的类库并查询需要什么。但是,由于这样的事实,我不是在每个表中每场模型(有些表有向上30+场)。如何从另一个程序集扩展模型?

我怎样才能延长原有的模式给它更多的属性?还是应该简单地对我使用的表格中的所有内容建模?我最初的想法是,如果开发人员能够根据自己的意愿扩展任何模型以满足他的项目需求,那将会很好。

回答

2

你可以继承自己的类新的装配形式的基类旧组装性的,如果你有旧的引用,这个类是公共的。

+0

有没有办法使用的东西,以局部类?我知道你不能使用来自不同程序集的部分类,但有可能使用另一种方法来模仿这种效果吗? – Mike 2010-07-26 12:25:04

+0

@wb你说的是,他们的班级2周的人分裂GUI组件? – Arseny 2010-07-26 12:42:21

0

除了什么Arseny是建议通过增加所谓的扩展方法,你可以“假扩展类”。举个例子,你可以这样扩展字符串:

public static class StringExtensions 
{ 
    public static string Affix(this string source, string prefix, string suffix) 
    { 
     return string.Format("{0}{1}{2}", prefix, source, suffix); 
    } 
} 

其中仅利用上它的扩展,因此它不破不修改偷别人类的合同不拥有源代码的类公开曝光的东西。但它增加了语法糖,让你调用类的,如果你确实修改了它,就像这样:

string myString = "MyString"; 
string result = myString.Affix("Before", "After"); 
// result contains "BeforeMyStringAfter"