Beispiel #1
0
        protected void innerConnect(string serviceId, object instance, Type implementor)
        {
            Enforce.ArgumentNotNullOrEmpty(serviceId, "serviceId");

            if (null != instance && null != implementor)
            {
                throw new ArgumentException("参数 '{0}' 和 'instance' 不能同时有值!");
            }
            if (null == instance && null == implementor)
            {
                throw new ArgumentException("参数 '{0}' 和 'instance' 不能同时为 null!");
            }

            if (!_isStarted)
            {
                _componentsById[serviceId] = instance ?? implementor;
                return;
            }

            bool newInstance = false;

            if (null == instance)
            {
                instance = createInstance(implementor, _internalParameters, out newInstance);
            }
            else
            {
                instance = createInstance(instance, _internalParameters, out newInstance);
            }

            _componentsById[serviceId] = instance;
            Start(instance, this);
        }
Beispiel #2
0
 private ExtensionAttribute(
     string id,
     string bundleId)
 {
     _Id       = Enforce.ArgumentNotNullOrEmpty(id, "id");
     _bundleId = Enforce.ArgumentNotNullOrEmpty(bundleId, "bundleId");
 }
        public static T Named <T>(ICollection <IParameter> parameters, string name)
        {
            Enforce.ArgumentNotNull(parameters, "parameters");
            Enforce.ArgumentNotNullOrEmpty(name, "name");

            return(ConstantValue <NamedParameter, T>(parameters, delegate(NamedParameter c) { return c.Name == name; }));
        }
Beispiel #4
0
 public ExtensionAttribute(
     string id,
     string bundleId,
     string point)
     : this(id, bundleId)
 {
     _point = Enforce.ArgumentNotNullOrEmpty(point, "point");
 }
        public void Connect(string serviceId, Type[] serviceTypes, Type classType)
        {
            Enforce.ArgumentNotNullOrEmpty(serviceId, "serviceId");
            Enforce.ArgumentNotNull(serviceTypes, "serviceTypes");
            if (0 == serviceTypes.Length)
            {
                throw new ArgumentNullException("serviceTypes");
            }

            _componentsById[serviceId] = serviceTypes[0];
            innerConnect(serviceTypes, null, classType);
        }
Beispiel #6
0
        public void Connect(string serviceId, Type[] serviceTypes, object instance)
        {
            Enforce.ArgumentNotNullOrEmpty(serviceId, "serviceId");
            Enforce.ArgumentNotNull(serviceTypes, "serviceTypes");
            if (0 == serviceTypes.Length)
            {
                _componentsById[serviceId] = instance;
                return;
            }

            _componentsById[serviceId] = serviceTypes[0];
            innerConnect(serviceTypes, instance, null);
        }
        public Descriptor(string id
                          , IEnumerable <Type> services
                          , Type implementationType
                          , ComponentLifestyle lifestyle
                          , int level
                          , IEnumerable <IParameter> parameters
                          , IProperties extendedProperties)
        {
            _id = Enforce.ArgumentNotNullOrEmpty(id, "id");
            _implementationType = Enforce.ArgumentNotNull(implementationType, "implementationType");

            _services           = services;
            _lifestyle          = lifestyle;
            _level              = level;
            _parameters         = parameters;
            _extendedProperties = extendedProperties;
        }
Beispiel #8
0
 public NamedParameter(string name, object value)
     : base(value, delegate(ParameterInfo pi) { return(pi.Name == name); })
 {
     _name = Enforce.ArgumentNotNullOrEmpty(name, "name");
 }
 public NamedPropertyParameter(string name, object value)
     : base(value, delegate(ParameterInfo parameterInfo)
            { return(parameterInfo.Member.Name.Replace("set_", "") == name); })
 {
     _name = Enforce.ArgumentNotNullOrEmpty(name, "name");
 }
Beispiel #10
0
 public ServiceKey(string key)
 {
     stringKey = Enforce.ArgumentNotNullOrEmpty(key, "key");
 }