/// <summary> /// /// </summary> /// <typeparam name="T"></typeparam> /// <param name="visitor"></param> public static void Add <T>(IAttributeProviderVisitor <T> visitor) { Guard.NotNull(visitor, "visitor"); lock (visitors) { visitors[typeof(T).TypeHandle] = visitor; } }
public void Inspect(IComponentInfo info, IKernel kernel, Type componentType, string injectionKey) { injectionInspector = new AttributeProviderInspector(); ignoreVisitor = AttributeProviderVisitorRepository.Get <bool>(); Guard.NotNull(ignoreVisitor, "ignoreVisitor"); if (!ignoreVisitor.VisitType(componentType))//if (!componentType.IsSystemAssemblyOfType()) { InspectFields(info, kernel, componentType); InspectPropeties(info, kernel, componentType); InspectMethods(info, kernel, componentType); } info.ExtendedProperties[injectionKey] = injectionInspector.Injections; info.ExtendedProperties["MembersRegistered"] = injectionInspector.Exports; info.ExtendedProperties["AppSettings"] = injectionInspector.AppSettingInjections; info.ExtendedProperties["subscribeProviders"] = injectionInspector.SubscribeInfoFactoryProviders; injectionInspector = null; }