Linq Expression Confusion与延迟执行相结合

时间:2009-02-05 14:56:44

标签: c# asp.net-mvc linq reflection routing

一旦路径匹配特定的需求或模式,我想执行特定的代码部分。我将从不同的插件中导入一些路径,这些路径将被搜索并整理出来,这对我的意图有用或无用。

我的想法是,一旦我从这些路径中获得匹配,我想创建此类的实例并调用它来返回view

我可以弄清楚能够传递一个委托并调用相应的代码,但仍然让我拿着一个指向该类的指针,我不想要。我想创建这个类的实例并调用所需的方法。

这是一个大纲:

public class TestView : IView
{
    public void Render(ViewContext viewContext, System.IO.TextWriter writer) {}
}

class TestViewCreator
{
    public IView CreateView(object Arguments)
    {
        return new TestView();
    }
}

public class CentralStash
{
    // T = TestViewCreator
    // How do I describe the method I want to call (CreateView)?
    public void RegisterPath<T>(string url, object Arguements)
    {

    }

    public IView GetView(string url)
    {
        var viewCreator = ObjectFactory.GetInstance<T>();
        //How do I call the method description on the type that I have jsut instanced?
        return null;
    }
}

我觉得我应该在这里使用路线,或者可能是表达方式?我知道这可以和代表们一起做,但是我不希望因为他们的指针而放置一些对象。

赞赏正确的方向。

更新

我可以创建界面:

public interface IViewCreator
{
    public IView CreateView(object Arguments);
}

创建其中一个来调用CreateView,但我希望能让它变得更强大。

1 个答案:

答案 0 :(得分:0)

public IView GetView(string url)
{
    object viewCreatorObj = ObjectFactory.GetInstance<T>();
    TestViewCreator viewCreator=? viewCreatorObj as TestViewCreator;

    return viewCreator.CreateView(null);
}