/// <summary> /// Gets or creates an instance of a service object. /// </summary> public override object GetService(object requestedServiceName) { var e = new ServiceCreationEventArgs(Provider, RegisteredServiceID, requestedServiceName, ServiceArgs); // call the service creator: ServiceHandler(Provider, e); var service = e.Service; // check if service has been really created: if (service == null) return null; // validate if given service object // implements requested interfaces: if (Validators != null) { var serviceType = service.GetType(); foreach (var v in Validators) if (!ServiceLocator.IsAssignableFrom(v, serviceType)) throw new ServiceValidationException(v, serviceType); } IServiceSite site = service as IServiceSite; // initialize with proper service provider: if (site != null) site.SetSite(Provider); return service; }
/// <summary> /// Gets or creates an instance of a service object. /// </summary> public override object GetService(object requestedServiceName) { var e = new ServiceCreationEventArgs(Provider, RegisteredServiceID, requestedServiceName, ServiceArgs); // call the service creator: ServiceHandler(Provider, e); var service = e.Service; // check if service has been really created: if (service == null) { return(null); } // validate if given service object // implements requested interfaces: if (Validators != null) { var serviceType = service.GetType(); foreach (var v in Validators) { if (!ServiceLocator.IsAssignableFrom(v, serviceType)) { throw new ServiceValidationException(v, serviceType); } } } IServiceSite site = service as IServiceSite; // initialize with proper service provider: if (site != null) { site.SetSite(Provider); } return(service); }