public static TService Get <TService, TConcrete>() where TConcrete : TService, new() where TService : class { var service = ServiceLocator.IsLocationProviderSet ? ServiceLocator.Current.GetInstance <TService>() : null; if (service == null) { service = new TConcrete(); } return(service); }
public static TService Get <TService, TConcrete>() where TConcrete : TService, new() { var service = ServiceLocator.Instance.TryResolve <TService>(); // TODO: service might not be null if (service == null) { service = new TConcrete(); } return(service); }
protected TInterface Transform <TInterface, TConcrete>() where TInterface : IStatement where TConcrete : Statement, TInterface, new() { var concrete = new TConcrete(); //TODO: Refactor this - transfering object state like this is *UGLY* concrete.AddParameters(_parameters.Values); concrete.AppendWord(_text.ToString()); concrete._listMode = _listMode; concrete._hasParentheses = _hasParentheses; concrete._subListMode = _subListMode; concrete._hasSubParentheses = _hasSubParentheses; return(concrete); }