2009-02-05 39 views
0

我想在路径匹配特定的需求或模式时执行代码的特定部分。我将从不同的插件导入一些路径,这些路径将通过搜索并整理出来,这些路径对我的意图是有用的或者不是。Linq表达式混淆与被执行的结合

这个想法是,一旦我从这些pathes中获得匹配,我想创建这个类的一个实例并调用它的返回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,但我希望,使这个更加强大。

+0

传递给委托人要好得多。不需要对象参数参数。还有一个委托开销?那么,如果你让他们传递字符串并输入参数并保存这些参数,那么你仍然有对象。 – MichaelGG 2009-02-05 22:00:16

回答

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

    return viewCreator.CreateView(null); 
}