限制接口成员访问

时间:2019-03-26 11:00:37

标签: c#

我的情况是我的管弦乐队班级给了IWatchService参数来使用FilesService类或DbService类。 IWatchServiceFilesService类中都使用DbService的所有3个成员。在Orchestra类中,除了方法Watch()之外,我还希望访问那些方法,因为方法Watch()仅应在DbServiceFilesService类中使用,而不能在Orchestra中使用。问题出在Orchestra中,所有三个成员都可见使用。有没有任何解决方法可以使Watch()Orchestra中不可见?

interface IWatchService
{
     void Watch();
     void MatchingFiles();
     void RemoteFiles();
}

interface IWatchServiceFiles : IWatchService { }

interface IWatchServiceDatabases : IWatchService { }

class FilesService : IWatchServiceFiles { }
class DbService : IWatchServiceDatabases { }

class Orchestra
{
    IWatchService WatchService
    public Orchestra(IWatchService watchService)
    {
        WatchService = watchService;
    }
}

0 个答案:

没有答案