#region Apache License // // Licensed to the Apache Software Foundation (ASF) under one or more // contributor license agreements. See the NOTICE file distributed with // this work for additional information regarding copyright ownership. // The ASF licenses this file to you under the Apache License, Version 2.0 // (the "License"); you may not use this file except in compliance with // the License. You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // #endregion // .NET Compact Framework 1.0 has no support for reading assembly attributes #if !NETCF using System; namespace log4net.Config { /// /// Assembly level attribute that specifies the logging repository for the assembly. /// /// /// /// Assemblies are mapped to logging repository. This attribute specified /// on the assembly controls /// the configuration of the repository. The property specifies the name /// of the repository that this assembly is a part of. The /// specifies the type of the object /// to create for the assembly. If this attribute is not specified or a /// is not specified then the assembly will be part of the default shared logging repository. /// /// /// This attribute can only be specified on the assembly and may only be used /// once per assembly. /// /// /// Nicko Cadell /// Gert Driesen [AttributeUsage(AttributeTargets.Assembly)] [Serializable] public /*sealed*/ class RepositoryAttribute : Attribute { // // Class is not sealed because DomainAttribute extends it while it is obsoleted // #region Public Instance Constructors /// /// Initializes a new instance of the class. /// /// /// /// Default constructor. /// /// public RepositoryAttribute() { } /// /// Initialize a new instance of the class /// with the name of the repository. /// /// The name of the repository. /// /// /// Initialize the attribute with the name for the assembly's repository. /// /// public RepositoryAttribute(string name) { m_name = name; } #endregion Public Instance Constructors #region Public Instance Properties /// /// Gets or sets the name of the logging repository. /// /// /// The string name to use as the name of the repository associated with this /// assembly. /// /// /// /// This value does not have to be unique. Several assemblies can share the /// same repository. They will share the logging configuration of the repository. /// /// public string Name { get { return m_name; } set { m_name = value ; } } /// /// Gets or sets the type of repository to create for this assembly. /// /// /// The type of repository to create for this assembly. /// /// /// /// The type of the repository to create for the assembly. /// The type must implement the /// interface. /// /// /// This will be the type of repository created when /// the repository is created. If multiple assemblies reference the /// same repository then the repository is only created once using the /// of the first assembly to call into the /// repository. /// /// public Type RepositoryType { get { return m_repositoryType; } set { m_repositoryType = value ; } } #endregion Public Instance Properties #region Private Instance Fields private string m_name = null; private Type m_repositoryType = null; #endregion Private Instance Fields } } #endif // !NETCF