예제 #1
0
        /// <summary>
        /// Configures the SecurityContextProvider
        /// </summary>
        /// <param name="sourceAssembly">The assembly that this attribute was defined on.</param>
        /// <param name="targetRepository">The repository to configure.</param>
        /// <remarks>
        /// <para>
        /// Creates a provider instance from the <see cref="P:log4net.Config.SecurityContextProviderAttribute.ProviderType" /> specified.
        /// Sets this as the default security context provider <see cref="P:log4net.Core.SecurityContextProvider.DefaultProvider" />.
        /// </para>
        /// </remarks>
        public override void Configure(Assembly sourceAssembly, ILoggerRepository targetRepository)
        {
            if ((object)m_providerType == null)
            {
                LogLog.Error(declaringType, "Attribute specified on assembly [" + sourceAssembly.FullName + "] with null ProviderType.");
                return;
            }
            LogLog.Debug(declaringType, "Creating provider of type [" + m_providerType.FullName + "]");
            SecurityContextProvider securityContextProvider = Activator.CreateInstance(m_providerType) as SecurityContextProvider;

            if (securityContextProvider == null)
            {
                LogLog.Error(declaringType, "Failed to create SecurityContextProvider instance of type [" + m_providerType.Name + "].");
            }
            else
            {
                SecurityContextProvider.DefaultProvider = securityContextProvider;
            }
        }
        /// <summary>
        /// Configures the SecurityContextProvider
        /// </summary>
        /// <param name="sourceAssembly">The assembly that this attribute was defined on.</param>
        /// <param name="targetRepository">The repository to configure.</param>
        /// <remarks>
        /// <para>
        /// Creates a provider instance from the <see cref="ProviderType"/> specified.
        /// Sets this as the default security context provider <see cref="SecurityContextProvider.DefaultProvider"/>.
        /// </para>
        /// </remarks>
        override public void Configure(Assembly sourceAssembly, ILoggerRepository targetRepository)
        {
            if (m_providerType == null)
            {
                LogLog.Error("SecurityContextProviderAttribute: Attribute specified on assembly [" + sourceAssembly.FullName + "] with null ProviderType.");
            }
            else
            {
                LogLog.Debug("SecurityContextProviderAttribute: Creating provider of type [" + m_providerType.FullName + "]");

                SecurityContextProvider provider = Activator.CreateInstance(m_providerType) as SecurityContextProvider;

                if (provider == null)
                {
                    LogLog.Error("SecurityContextProviderAttribute: Failed to create SecurityContextProvider instance of type [" + m_providerType.Name + "].");
                }
                else
                {
                    SecurityContextProvider.DefaultProvider = provider;
                }
            }
        }