Я хочу выполнить определенную часть кода, когда путь соответствует определенной потребности или шаблону. Я импортирую несколько путей из разных плагинов, которые будут искать и сортировать, которые полезны или не нужны для моего намерения.
Идея состоит в том, что, как только я получу совпадение из этих путей, я хочу создать экземпляр этого класса и вызвать его метод для возврата 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
, но я надеялся сделать это более мощным.