/// <summary>
        /// Register the error routers that are configured in the configuration file
        /// </summary>
        /// <remarks>
        /// Calling this method may overwrite the "hard-coded policy" registered by the adapter. This method
        /// should be called after all the adapters are given a chance to register their "hard-coded policy"
        /// </remarks>
        internal void RegisterErrorsInConfigurationFile()
        {
            if (null != m_customRouterSettings)
            {
                foreach (BM.ErrorRouter routerConfig in m_customRouterSettings.ErrorRouter)
                {
                    ErrorSignatureBase signature = ErrorSignatureFactory.CreateErrorSignaure(routerConfig.Signature);
                    if (null != signature)
                    {
                        ErrorRoutingPolicy policy = ErrorRoutingPolicyFactory.CreateRoutingPolicy(routerConfig.Policy);
                        this.RegisterError(signature, policy);
                    }
                }
            }

            // last step, call register wild card error routing policy
            DefaultErrorRoutingPolicies.RegisterImplicitDefaultErrors(this);
        }
 /// <summary>
 /// Registers the default errors such as OOM, NullReference, etc.
 /// </summary>
 private void RegisterDefaultErrors()
 {
     DefaultErrorRoutingPolicies.RegisterDefaultErrors(this);
 }