/// <summary> /// Initializes a new instance of the TypeImplementer class. /// </summary> /// <param name="interfaceType">The type to implement.</param> public TypeImplementer(Type interfaceType) { _interfaceType = interfaceType; _contextProvider = ProviderManager.GetProvider<TraceContextProvider>(interfaceType, typeof(TraceContextProviderAttribute), null); _serializationProvider = TraceSerializationProvider.GetSerializationProvider(interfaceType); _eventAttributeProvider = ProviderManager.GetProvider<EventAttributeProvider>(interfaceType, typeof(EventAttributeProviderAttribute), () => new EventAttributeProvider()); // only interfaces support context if (_contextProvider != null && !_interfaceType.IsInterface) throw new InvalidOperationException("Context Providers can only be added to interface-based logs."); ImplementType(); }
public static void RegisterProvider <TLog>(TraceContextProvider provider) { RegisterProvider(typeof(TLog), typeof(TraceContextProvider), provider); }
/// <summary> /// Registers a Context Provider for a given event source. /// </summary> /// <param name="type">The type of event source to register with.</param> /// <param name="provider">The provider to register.</param> public static void RegisterProvider(Type type, TraceContextProvider provider) { RegisterProvider(type, typeof(TraceContextProvider), provider); }
/// <summary> /// Registers a default TraceContextProvider for all event sources. /// </summary> /// <param name="provider">The provider to register.</param> public static void RegisterDefaultProvider(TraceContextProvider provider) { RegisterProvider(null, provider); }