私は現在、ServiceLocatorのFluentインターフェイスを構築しようとしています。各開発者が1対nのマッピングを簡単に設定できるようにするため
こんなもの欲しい
ServiceLocator.Instance.For<IFoo>(Use<Foo>(), Use<FooBar>());
シングルトンは正常に機能しています...Forメソッドのmethodsignatureは次のようになります
public void For<TInterface>(params type[] services)
{
// ...
}
だから私はグローバルメソッドのようなものを探していました
C#にはいくつかのグローバルメソッドがあり、すべてのメソッドはSystem.Objectで定義されています。しかし、System.Objectで新しい汎用ExtensionMethodを作成すると、メソッドは表示されません。
public static class MyExtensions
{
public static void Use<T>(this Object instance)
{
// ..
}
}
MethodChainingが代替手段になりますが、このアプローチはセクシーに見えます:D
誰かアイデアはありますか?