Вы не наследуете интерфейс, который вы реализуете. Нет необходимости делать класс частичным, чтобы добавить к нему интерфейс.
Интерфейс - это контракт, на который подписывается класс, говоря, что он будет соблюдать методы, описанные в интерфейсе, и будет реализовывать их соответствующим образом. Для вашего сценария вы должны создать единый интерфейс и реализовать его в своих классах, а затем передать экземпляры различных классов доступа в качестве экземпляров интерфейса.
Например:
public interface IDataProvider
{
void LoadData();
}
Тогда поставщики данных будут выглядеть следующим образом:
public class MyDataProvder1 : IDataProvider
{
// Some methods
// Must implement LoadData
public void LoadData()
{
// Do something
}
}
public class MyDataProvder2 : IDataProvider
{
// Some methods
// Must implement LoadData
public void LoadData()
{
// Do something
}
}
Затем вы можете передать объекты как IDataProvider следующим образом:
IDataProvider DataProviderA = new MyDataProvider1();
IDataProvider DataProviderB = new MyDataProvider2();
// Call function that expects an IDataProvider
DoSomething(DataProviderA);
DoSomething(DataProviderB);
...
public void DoSomething(IDataProvider DataProvider)
{
DataProvider.LoadData();
}
Надеюсь, это прояснит для вас.