public override void RegisterProviderTypes(ProviderRegistrationContext context) { foreach (var type in context.StartClasses) { // Look for Register methods // Register(ProviderRegistrationContext) foreach (var method in type.GetMethods(BindingFlags.Public | BindingFlags.Static)) { var pms = method.GetParameters(); if (method.ReturnType == typeof(void) && pms.Length == 1 && pms[0].ParameterType == typeof(ProviderRegistrationContext)) { LateBoundLog.Try( SR.ProblemExecutingProviderRegistrationMethod(type, method.Name), () => method.Invoke(null, new object[] { context }) ); } } // Also treat like a [Providers] class SlowProviderRegistration.ExtractProvidersClass(context, type.GetTypeInfo()); } }
public static void InvalidProviderDeclared(string fullName, Exception ex) { LateBoundLog.Fail(SR.InvalidProviderDeclared(fullName, ex.Message), ex); }
public static void LateBoundTypeFailure(string originalString, Exception ex) { LateBoundLog.Fail(SR.LateBoundTypeFailure(originalString), ex); }
public static void ServiceFailedToStart(Type serviceType, Exception ex) { LateBoundLog.Fail(SR.ServiceFailedToStart(serviceType), ex); }
public void Dispose() { LateBoundLog.SetFailCallback(null); }
public LateBoundLogRecord() { LateBoundLog.SetFailCallback(FailCallback); }