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());
            }
        }
Ejemplo n.º 2
0
 public static void InvalidProviderDeclared(string fullName, Exception ex)
 {
     LateBoundLog.Fail(SR.InvalidProviderDeclared(fullName, ex.Message), ex);
 }
Ejemplo n.º 3
0
 public static void LateBoundTypeFailure(string originalString, Exception ex)
 {
     LateBoundLog.Fail(SR.LateBoundTypeFailure(originalString), ex);
 }
Ejemplo n.º 4
0
 public static void ServiceFailedToStart(Type serviceType,
                                         Exception ex)
 {
     LateBoundLog.Fail(SR.ServiceFailedToStart(serviceType), ex);
 }
Ejemplo n.º 5
0
 public void Dispose()
 {
     LateBoundLog.SetFailCallback(null);
 }
Ejemplo n.º 6
0
 public LateBoundLogRecord()
 {
     LateBoundLog.SetFailCallback(FailCallback);
 }