<html dir="LTR">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=Windows-1252" />
    <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5" />
    <title>CompactRepositorySelector.CreateRepository Method (String, Type)</title>
    <xml>
    </xml>
    <link rel="stylesheet" type="text/css" href="MSDN.css" />
  </head>
  <body id="bodyID" class="dtBODY">
    <div id="nsbanner">
      <div id="bannerrow1">
        <table class="bannerparthead" cellspacing="0">
          <tr id="hdr">
            <td class="runninghead">Apache log4net� SDK Documentation - Microsoft .NET Framework 4.0</td>
            <td class="product">
            </td>
          </tr>
        </table>
      </div>
      <div id="TitleRow">
        <h1 class="dtH1">CompactRepositorySelector.CreateRepository�Method�(String, Type)</h1>
      </div>
    </div>
    <div id="nstext">
      <p> Create a new repository for the repository specified </p>
      <div class="syntax">
        <span class="lang">[Visual�Basic]</span>
        <br />NotOverridable�Overloads�Public�Function�CreateRepository( _<br />���ByVal <i>repositoryName</i>�As�<a href="ms-help://MS.NETFrameworkSDKv1.1/cpref/html/frlrfSystemStringClassTopic.htm">String</a>,�_<br />���ByVal <i>repositoryType</i>�As�<a href="ms-help://MS.NETFrameworkSDKv1.1/cpref/html/frlrfSystemTypeClassTopic.htm">Type</a>�_<br />)�As�<a href="log4net.Repository.ILoggerRepository.html">ILoggerRepository</a>�_<div>����Implements�<a href="log4net.Core.IRepositorySelector.CreateRepository_overload_2.html">IRepositorySelector.CreateRepository</a></div></div>
      <div class="syntax">
        <span class="lang">[C#]</span>
        <br />public�<a href="log4net.Repository.ILoggerRepository.html">ILoggerRepository</a>�CreateRepository(<br />���<a href="ms-help://MS.NETFrameworkSDKv1.1/cpref/html/frlrfSystemStringClassTopic.htm">string</a>�<i>repositoryName</i>,<br />���<a href="ms-help://MS.NETFrameworkSDKv1.1/cpref/html/frlrfSystemTypeClassTopic.htm">Type</a>�<i>repositoryType</i><br />);</div>
      <h4 class="dtH4">Parameters</h4>
      <dl>
        <dt>
          <i>repositoryName</i>
        </dt>
        <dd>the repository to associate with the <a href="log4net.Repository.ILoggerRepository.html">ILoggerRepository</a></dd>
        <dt>
          <i>repositoryType</i>
        </dt>
        <dd>the type of repository to create, must implement <a href="log4net.Repository.ILoggerRepository.html">ILoggerRepository</a>. If this param is null then the default repository type is used.</dd>
      </dl>
      <h4 class="dtH4">Return Value</h4>
      <p>the repository created</p>
      <h4 class="dtH4">Implements</h4>
      <p>
        <a href="log4net.Core.IRepositorySelector.CreateRepository_overload_2.html">IRepositorySelector.CreateRepository</a>
      </p>
      <h4 class="dtH4">Remarks</h4>
            <p> The <a href="log4net.Repository.ILoggerRepository.html">ILoggerRepository</a> created will be associated with the repository specified such that a call to <a href="log4net.Core.CompactRepositorySelector.GetRepository_overload_2.html">GetRepository</a> with the same repository specified will return the same repository instance. </p>
            <p> If the named repository already exists an exception will be thrown. </p>
            <p> If <i>repositoryType</i> is <code>null</code> then the default repository type specified to the constructor is used. </p>
            <h4 class="dtH4">Exceptions</h4><div class="tablediv"><table class="dtTABLE" cellspacing="0"><tr valign="top"><th width="50%">Exception Type</th><th width="50%">Condition</th></tr><tr valign="top"><td width="50%"><a href="ms-help://MS.NETFrameworkSDKv1.1/cpref/html/frlrfSystemArgumentNullExceptionClassTopic.htm">ArgumentNullException</a></td><td width="50%">throw if <i>repositoryName</i> is null</td></tr><tr valign="top"><td width="50%"><a href="log4net.Core.LogException.html">LogException</a></td><td width="50%">throw if the <i>repositoryName</i> already exists</td></tr></table></div><h4 class="dtH4">See Also</h4><p><a href="log4net.Core.CompactRepositorySelector.html">CompactRepositorySelector Class</a> | <a href="log4net.Core.html">log4net.Core Namespace</a> | <a href="log4net.Core.CompactRepositorySelector.CreateRepository_overloads.html">CompactRepositorySelector.CreateRepository Overload List</a></p><object type="application/x-oleobject" classid="clsid:1e2a7bd0-dab9-11d0-b93a-00c04fc99f9e" viewastext="true" style="display: none;"><param name="Keyword" value="CreateRepository method"></param><param name="Keyword" value="CreateRepository method, CompactRepositorySelector class"></param><param name="Keyword" value="CompactRepositorySelector.CreateRepository method"></param></object><hr /><div id="footer"><a href='http://logging.apache.org/log4net/'>Copyright 2004-2011 The Apache Software Foundation.</a><br></br>Apache log4net, Apache and log4net are trademarks of The Apache Software Foundation.</div></div>
  </body>
</html>
