如何控制来自2个不同组件的2个类(A& B)之间的交互?

时间:2018-03-12 12:44:01

标签: c# generics access-modifiers

我有一个程序集(X),它是一个名为DataItems的库,它包含我的模型,其中的类表示业务对象,如Order,Invoice等。它们都继承自Class DataItem(A)。 A具有方法ResetStatus(M)。

X被不同的其他项目使用,因此我无法对此进行更改。

我有一个程序集,一个名为DataContext(Y)的库,它引用程序集X.它处理数据库连接等,并实例化A类对象,用不同来源的数据填充它们。它必须能够调用A. Resetstatus()(M)。

基本上,我希望我的所有前端程序集都能引用和使用DataContext(Y)。但我不希望他们能够使用M.

1 个答案:

答案 0 :(得分:1)

使用界面公开您选择的方法。

public interface IDataItem 
{
    void OnlyUseThis();
}

public class DataItem : IDataItem
{
    public void OnlyUseThis()
    {  
        // externaly available
    }

    public void ResetStatus()
    {
        // hands off
    }
}

不要在外部使用DataItem,而是使用IDataItem。

如果他们真的想要,程序员将能够实现,但不是偶然。