メソッドの指示を受け入れる流暢なスタイルのAPIを構築しようとしています。私は何を達成したいが、この(無効)のコードサンプルでdecribedすることができます。メソッドグループを受け入れる流暢なAPIメソッドを作成する
public class SampleBuilder
{
public void Method<T>(Expression<Func<T, Delegate>> func) { }
// for the sake of this example this method doesn't have a return value
}
public class Sample
{
public void SomeMethod(int some, int arbitrary, int agruments) { }
}
public class SampleConfig
{
public void Config()
{
new SampleBuilder().Method<Sample>(x => x.SomeMethod);
}
}
問題は明らかにコンパイラですx.SomeMethod
はメソッドの基を表すことを文句を言います。私のAPIは、実際のインスタンスも実際のメソッドのシグネチャも推測できません。これは実行時に決定されます。
ユーザーがメソッドグループを指定できるようにする使いやすいAPIを提供するにはどうすればよいですか?
背景:To()
とFrom()
がビューの定義を受け入れ、それらエントリ/出口方法
config.Transition().From(v1def, v1 => v1.ExitMethod).To(v2def, v2 => v2.EntryMethod);
:得られた使用量がこのようになります。上記特定のサンプルでは、v1def
はビュー定義クラスを示し、v1
は実際のビュークラスを示します。その日の終わりに、新しいの遷移が構築され、config
に追加されます。