private void OnRegister(object sender, RegisterEventArgs e) { Context.RegisterNamedType(e.TypeFrom ?? e.TypeTo, e.Name); if (e.TypeFrom != null) { if (e.TypeFrom.GetTypeInfo().IsGenericTypeDefinition && e.TypeTo.GetTypeInfo().IsGenericTypeDefinition) { Context.Policies.Set<IBuildKeyMappingPolicy>( new GenericTypeBuildKeyMappingPolicy(new NamedTypeBuildKey(e.TypeTo, e.Name)), new NamedTypeBuildKey(e.TypeFrom, e.Name)); } else { Context.Policies.Set<IBuildKeyMappingPolicy>( new BuildKeyMappingPolicy(new NamedTypeBuildKey(e.TypeTo, e.Name)), new NamedTypeBuildKey(e.TypeFrom, e.Name)); } } if (e.LifetimeManager != null) { this.SetLifetimeManager(e.TypeTo, e.Name, e.LifetimeManager); } }
private void OnRegister(object sender, RegisterEventArgs e) { registeredNames.RegisterType(e.TypeFrom ?? e.TypeTo, e.Name); if (e.TypeFrom != null) { if (e.TypeFrom.GetTypeInfo().IsGenericTypeDefinition&& e.TypeTo.GetTypeInfo().IsGenericTypeDefinition) { policies.Set <IBuildKeyMappingPolicy>( new GenericTypeBuildKeyMappingPolicy(new NamedTypeBuildKey(e.TypeTo, e.Name)), new NamedTypeBuildKey(e.TypeFrom, e.Name)); } else { policies.Set <IBuildKeyMappingPolicy>( new BuildKeyMappingPolicy(new NamedTypeBuildKey(e.TypeTo, e.Name)), new NamedTypeBuildKey(e.TypeFrom, e.Name)); } } if (e.LifetimeManager != null) { SetLifetimeManager(e.TypeFrom ?? e.TypeTo, e.Name, e.LifetimeManager); } }