public object GetService(Type serviceType) { if (serviceType == null) { throw new ArgumentNullException("serviceType"); } object service = null; this._services.TryGetValue(serviceType, out service); if (service == null && this._parentContainer != null) { service = this._parentContainer.GetService(serviceType); } Design.ServiceCreatorCallback callback = service as Design.ServiceCreatorCallback; if (callback != null) { service = callback(this, serviceType); } return(service); }
public void AddService(Type serviceType, Design.ServiceCreatorCallback callback, bool promote) { if (promote && this._parentContainer != null) { this._parentContainer.AddService(serviceType, callback, promote); } else { lock (this._lock) { if (this._services.ContainsKey(serviceType)) { throw new ArgumentException(string.Format(CultureInfo.CurrentCulture, Resources.DataAnnotationsResources.ValidationContextServiceContainer_ItemAlreadyExists, serviceType), "serviceType"); } this._services.Add(serviceType, callback); } } }
public void AddService(Type serviceType, Design.ServiceCreatorCallback callback) { this.AddService(serviceType, callback, true); }