Ejemplo n.º 1
0
        public ILocatorResolutionInfo <TClass> RegisterType <TInterface, TClass>(string name) where TClass : TInterface
        {
            var interfaceType = typeof(TInterface);
            var classType     = typeof(TClass);

            if (interfaceType.IsGenericType || classType.IsGenericType)
            {
                throw new TypeNotSupportedException(interfaceType.FullName, "Generic Types cannot be registered by RegisterType registrationInfo registration");
            }

            var key = GetKey(interfaceType, name);

            CheckDuplicated(key);

            var propRegistrationInfo = new PropertyRegistrationInfo <TClass>();

            var typeBuilder = new LocatorTypeBuilder <TClass>(this, propRegistrationInfo);

            registeredTypes.AddOrUpdate(key, typeBuilder, (pair, builder) => typeBuilder);

            var registrationInfo = new LocatorRegistrationInfo <TClass>();

            registrationInfo.PropertyInjectionResolvers = typeBuilder.PropertyResolvers;

            return(new LocatorResolutionInfo <TClass>(registrationInfo, propRegistrationInfo));
        }
Ejemplo n.º 2
0
 public MappingTypeBuilder(ServiceLocator locator, PropertyRegistrationInfo <TDest> registrationInfo)
     : this(registrationInfo)
 {
     var injector = new LocatorValueInjector(locator)
     {
         InjectOnlyFlaggedProperties = LocatorInjectOnlyFlaggedProperties
     };
     InitLovcatorValueInjector(injector);
 }
Ejemplo n.º 3
0
        public TypeMapper(ServiceLocator locator)
        {
            DestType = typeof(TDest);

            SourceType          = typeof(TSource);
            propertyMappingInfo = new PropertyMappingInfo <TDest>();
            registrationInfo    = new PropertyRegistrationInfo <TDest>();
            locatorMappingInfo  = new LocatorRegistrationInfo <TDest>();
            this.locator        = locator;
            LocatorInjectOnlyFlaggedProperties = true;
        }
Ejemplo n.º 4
0
        public LocatorTypeBuilder(LocatorRegistrationInfoResolver propertyResolver,
                                  ServiceLocator serviceLocator, PropertyRegistrationInfo <T> registrationInfo)
            : base(registrationInfo)
        {
            var injectionResolver = propertyResolver;

            this.PropertyResolvers = propertyResolver.PropertyInjectionResolvers;
            RegisterSourceResolver(injectionResolver);
            RegisterSourceResolver(new LocatorValueInjector(serviceLocator)
            {
                InjectOnlyFlaggedProperties = true
            });
        }
Ejemplo n.º 5
0
 public LocatorTypeBuilder(ServiceLocator serviceLocator, PropertyRegistrationInfo <T> registrationInfo)
     : this(new LocatorRegistrationInfoResolver(serviceLocator), serviceLocator, registrationInfo)
 {
 }
Ejemplo n.º 6
0
 public TypeBuilder(PropertyRegistrationInfo <T> registrationInfo)
     : base(typeof(T))
 {
     this.registrationInfo = registrationInfo;
 }
Ejemplo n.º 7
0
 public TypeBuilder()
     : base(typeof(T))
 {
     registrationInfo = new PropertyRegistrationInfo <T>();
 }
Ejemplo n.º 8
0
 public MappingTypeBuilder(PropertyRegistrationInfo <TDest> registrationInfo) : base(registrationInfo)
 {
     base.RegisterSourceResolver(new SourceAttributeResolver());
     base.RegisterSourceResolver(new SourcePropertyResolver());
     base.RegisterSourceResolver(new SourceTypeInjector());
 }
Ejemplo n.º 9
0
 public MappingTypeBuilder(LocatorValueInjector injector, PropertyRegistrationInfo <TDest> registrationInfo)
     : this(registrationInfo)
 {
     InitLovcatorValueInjector(injector);
 }