public object GetService(Type serviceType) { IRequest request = resolutionRoot.CreateRequest(serviceType, null, new Parameter[0], true, true); return(resolutionRoot.Resolve(request).SingleOrDefault()); }
public object GetService(Type serviceType) { if (resolver == null) { throw new ObjectDisposedException("this", "This scope has been disposed"); } IRequest request = resolver.CreateRequest(serviceType, null, new Parameter[0], true, true); return(resolver.Resolve(request).SingleOrDefault()); }
private IRequest CreateRequest(Type serviceType) { return(resolutionRoot.CreateRequest(serviceType, null, new Parameter[0], true, true)); }
private static IEnumerable <object> GetResolutionIterator(IResolutionRoot root, Type service, Func <IBindingMetadata, bool> constraint, IEnumerable <IParameter> parameters, bool isOptional, bool isUnique) { Ensure.ArgumentNotNull(root, "root"); var request = root.CreateRequest(service, constraint, parameters, isOptional, isUnique); return(root.Resolve(request)); }
private static object ResolveSingle(IResolutionRoot root, Type service, Func <IBindingMetadata, bool> constraint, IReadOnlyList <IParameter> parameters, bool isOptional, bool isUnique) { Ensure.ArgumentNotNull(root, nameof(root)); var request = root.CreateRequest(service, constraint, parameters, isOptional, isUnique); return(root.ResolveSingle(request)); }
private static T DoTryGetAndThrowOnInvalidBinding <T>(IResolutionRoot root, Func <IBindingMetadata, bool> constraint, IReadOnlyList <IParameter> parameters) { Ensure.ArgumentNotNull(root, nameof(root)); var request = root.CreateRequest(typeof(T), constraint, parameters, true, true); request.ForceUnique = true; return((T)root.ResolveSingle(request)); }
private static bool CanResolve(IResolutionRoot root, Type service, Func <IBindingMetadata, bool> constraint, IEnumerable <IParameter> parameters, bool isOptional, bool isUnique) { Ensure.ArgumentNotNull(root, "root"); Ensure.ArgumentNotNull(service, "service"); Ensure.ArgumentNotNull(parameters, "parameters"); IRequest request = root.CreateRequest(service, constraint, parameters, isOptional, isUnique); return(root.CanResolve(request)); }
private static IEnumerable <object> GetResolutionIterator(IResolutionRoot root, Type service, Func <IBindingMetadata, bool> constraint, IEnumerable <IParameter> parameters, bool isOptional, bool isUnique) { Contract.Requires(root != null); Contract.Requires(service != null); Contract.Requires(parameters != null); var request = root.CreateRequest(service, constraint, parameters, isOptional, isUnique); return(root.Resolve(request)); }
public static IEnumerable <T> TryGetAll <T>(this IResolutionRoot resolutionRoot) { var request = resolutionRoot.CreateRequest(typeof(IFoo), x => true, Enumerable.Empty <IParameter>(), true, false); IEnumerable results = resolutionRoot.Resolve(request); IEnumerator enumerator = results.GetEnumerator(); while (MoveNextIgnoringActivationException(enumerator)) { yield return((T)enumerator.Current); } }
public override IController CreateController(RequestContext requestContext, string controllerName) { //You can improve this later if you want -> you'll need to figure out if your controller will fit into this case //You can use marker interfaces, common supertype, etc... that's up to you if (controllerName.Equals("home", StringComparison.InvariantCultureIgnoreCase)) { var controllerType = typeof(HomeController); var isChild = requestContext.RouteData.DataTokens.ContainsKey(ParentActionViewContextToken); var constructorArgument = new ConstructorArgument("someName", (isChild) ? "Child" : "Nope"); var requestForDependency = _resolutionRoot.CreateRequest(typeof(IServiceClient), null, new Parameter[] { constructorArgument }, true, true); var dependency = _resolutionRoot.Resolve(requestForDependency).SingleOrDefault(); return((IController)_resolutionRoot.Get(controllerType, new ConstructorArgument("service", dependency))); } //Will go through the default pipeline (IDependencyResolver will be called, not affecting DI of other controllers) return(base.CreateController(requestContext, controllerName)); }
private IRequest CreateRequest(Type serviceType) { return(_resolver.CreateRequest(serviceType, null, new Parameter[0], true, true)); }
public IEnumerable <object> GetServices(Type serviceType) { var request = _resolutionRoot.CreateRequest(serviceType, null, new IParameter[0], true, true); return(_resolutionRoot.Resolve(request)); }
public bool IsRegistered(Type t) { return (_container.CanResolve(_container.CreateRequest(t, null, new List <IParameter>(), false, false), true)); }