我有一个程序集(X),它是一个名为DataItems的库,它包含我的模型,其中的类表示业务对象,如Order,Invoice等。它们都继承自Class DataItem(A)。 A具有方法ResetStatus(M)。
X被不同的其他项目使用,因此我无法对此进行更改。
我有一个程序集,一个名为DataContext(Y)的库,它引用程序集X.它处理数据库连接等,并实例化A类对象,用不同来源的数据填充它们。它必须能够调用A. Resetstatus()(M)。
基本上,我希望我的所有前端程序集都能引用和使用DataContext(Y)。但我不希望他们能够使用M.
答案 0 :(得分:1)
使用界面公开您选择的方法。
public interface IDataItem
{
void OnlyUseThis();
}
public class DataItem : IDataItem
{
public void OnlyUseThis()
{
// externaly available
}
public void ResetStatus()
{
// hands off
}
}
不要在外部使用DataItem,而是使用IDataItem。
如果他们真的想要,程序员将能够实现,但不是偶然。