Skip to content

Instantly share code, notes, and snippets.

@schotime
Created April 18, 2011 12:56
Show Gist options
  • Select an option

  • Save schotime/925273 to your computer and use it in GitHub Desktop.

Select an option

Save schotime/925273 to your computer and use it in GitHub Desktop.
QueryInvoker
public interface IQueryInvoker
{
TViewModel Invoke<TViewModel>() where TViewModel : new();
}
public class QueryInvoker : IQueryInvoker
{
private readonly IObjectResolver _objectResolver;
public QueryInvoker(IObjectResolver objectResolver)
{
_objectResolver = objectResolver;
}
public TViewModel Invoke<TViewModel>() where TViewModel : new()
{
var viewmodel = new TViewModel();
var handler = _objectResolver.Resolve<IQueryHandler<TViewModel>>();
handler.Handle(viewmodel);
return viewmodel;
}
}
public interface IQueryHandler<TViewModel>
{
void Handle(TViewModel viewmodel);
}
public interface IObjectResolver
{
T Resolve<T>();
}
public class ObjectResolver : IObjectResolver
{
public T Resolve<T>()
{
return ObjectFactory.GetInstance<T>();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment