即时尝试编写某种类型的强类型路由系统。 试想香港专业教育学院得到了一些类方法的是需要返回字符串将方法传递到泛型函数并调用它
public class SomeClass
{
public string MethodA(string str)
{
return string.Format("SomeClass :: MethodA {0}", str);
}
}
而且我想我的主要方法看起来像这样
class Program
{
static void Main(string[] args)
{
var col = new SomeCollection();
col.Add<SomeClass>("url", c => c.MethodA("test")); //Bind MethodA to "url"
}
}
所以我的问题是:
- 什么应该添加方法签名?
- 如何在SomeCollection中调用MethodA?
我想这会是这样的
public class SomeCollection
{
public void Add<TController> (string url, Func<TController, string> exp)
{
// Add func to dictionary <url, funcs>
}
public void FindBestMatchAndExecute (Request request)
{
//Search url in collection and invoke it's method.
//Method params we can extract from request.
}
}
问题是:你从哪里得到'SomeClass'的实例应该传入lambda表达式? –
@defaultlocale:'c'是lambda表达式的参数,就像'x'在'Select(x => x.Id)'中一样。 –
@DanielHilgarth,谢谢,实际上我误解了这个问题。 –