インターフェイスをいくつかに分割します。
public interface IPluginInterface : IEquatable<IPluginInterface>
{
string Maker { get; }
string Version { get; }
}
public interface IPluginWithOptionA : IPluginInterface
{
void Do();
}
public interface IPluginWithOptionB : IPluginInterface
{
void Do_two();
}
1つ以上のインターフェースを実装できます
public class MyPlugin : IPluginWithOptionA, IPluginWithOptionB
{
public bool Equals(IPluginInterface other)
{
throw new NotImplementedException();
}
public string Maker
{
get { throw new NotImplementedException(); }
}
public string Version
{
get { throw new NotImplementedException(); }
}
public void Do_two()
{
throw new NotImplementedException();
}
public void Do()
{
throw new NotImplementedException();
}
}