バージョン番号を与えるインターフェースメソッドを設定しようとしています:
var versionNumber = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString();
継承クラスがバージョン番号を取得できるように、これをインターフェイスに実装する方法がわかりませんか?
public interface IVersionProvider
{
string GetVersion();
}
実装:
internal class /*or struct*/ VersionProvider : IVersionProvider
{
public string GetVersion()
{
System.Reflection.Assembly.GetExecutingAssembly()
.GetName().Version.ToString();
}
}
クラスを内部で作成しました。外部で作成できる必要がないためです。
public class Factory
{
IVersionProvider GetVersionProvider() { return new VersionProvider(); }
}
インターフェイスはパブリックであるため、実装がアセンブリに対してプライベートであっても、外部ユーザーはそのインターフェイスで「GetVersion」を呼び出すことができます。