﻿<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><style type="text/css">.OH_CodeSnippetContainerTabLeftActive, .OH_CodeSnippetContainerTabLeft,.OH_CodeSnippetContainerTabLeftDisabled { }.OH_CodeSnippetContainerTabRightActive, .OH_CodeSnippetContainerTabRight,.OH_CodeSnippetContainerTabRightDisabled { }.OH_footer { }</style><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>CompactRepositorySelector.CreateRepository Method (String, Type)</title><meta name="Language" content="en-us" /><meta name="Microsoft.Help.Id" content="M:log4net.Core.CompactRepositorySelector.CreateRepository(System.String,System.Type)" /><meta name="Description" content="Create a new repository for the repository specified" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="log4net.Core" /><meta name="file" content="M_log4net_Core_CompactRepositorySelector_CreateRepository_1" /><meta name="guid" content="M_log4net_Core_CompactRepositorySelector_CreateRepository_1" /></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="OH_outerDiv"><div class="OH_outerContent"><table class="TitleTable"><tr><td class="OH_tdTitleColumn">CompactRepositorySelector<span id="LSTE9BC393B_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTE9BC393B_0?cpp=::|nu=.");</script>CreateRepository Method (String, Type)</td><td class="OH_tdRunningTitleColumn">Apache log4net™ SDK Documentation</td></tr></table><div id="mainSection"><div id="mainBody"><span class="introStyle"></span><div class="summary">
            Create a new repository for the repository specified
            </div><p> </p><strong>Namespace:</strong> <a href="N_log4net_Core.htm">log4net.Core</a><br /><strong>Assembly:</strong> log4net (in log4net.dll) Version: 2.0.6.0-.NET 4.0<div class="OH_CollapsibleAreaRegion"><div class="OH_regiontitle">Syntax</div><div class="OH_CollapsibleArea_HrDiv"><hr class="OH_CollapsibleArea_Hr" /></div></div><div class="OH_clear"> </div><div class="OH_CodeSnippetContainer"><div class="OH_CodeSnippetContainerTabs"><div class="OH_CodeSnippetContainerTabLeft" id="ID0EDCA_tabimgleft"> </div><div id="ID0EDCA_tab1" class="OH_CodeSnippetContainerTabFirst"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="OH_CodeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="OH_CodeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="OH_CodeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div><div class="OH_CodeSnippetContainerTabRight" id="ID0EDCA_tabimgright"> </div></div><div class="OH_CodeSnippetContainerCodeCollection"><div class="OH_CodeSnippetToolBar"><div class="OH_CodeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="OH_CodeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">ILoggerRepository</span> <span class="identifier">CreateRepository</span>(
	<span class="identifier">string</span> <span class="parameter">repositoryName</span>,
	<span class="identifier">Type</span> <span class="parameter">repositoryType</span>
)</pre></div><div id="ID0EDCA_code_Div2" class="OH_CodeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Function</span> <span class="identifier">CreateRepository</span> ( 
	<span class="parameter">repositoryName</span> <span class="keyword">As</span> <span class="identifier">String</span>,
	<span class="parameter">repositoryType</span> <span class="keyword">As</span> <span class="identifier">Type</span>
) <span class="keyword">As</span> <span class="identifier">ILoggerRepository</span></pre></div><div id="ID0EDCA_code_Div3" class="OH_CodeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
<span class="keyword">virtual</span> <span class="identifier">ILoggerRepository</span>^ <span class="identifier">CreateRepository</span>(
	<span class="identifier">String</span>^ <span class="parameter">repositoryName</span>, 
	<span class="identifier">Type</span>^ <span class="parameter">repositoryType</span>
) <span class="keyword">sealed</span></pre></div><div id="ID0EDCA_code_Div4" class="OH_CodeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">abstract</span> <span class="identifier">CreateRepository</span> : 
        <span class="parameter">repositoryName</span> : <span class="identifier">string</span> * 
        <span class="parameter">repositoryType</span> : <span class="identifier">Type</span> <span class="keyword">-&gt;</span> <span class="identifier">ILoggerRepository</span> 
<span class="keyword">override</span> <span class="identifier">CreateRepository</span> : 
        <span class="parameter">repositoryName</span> : <span class="identifier">string</span> * 
        <span class="parameter">repositoryType</span> : <span class="identifier">Type</span> <span class="keyword">-&gt;</span> <span class="identifier">ILoggerRepository</span> </pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Parameters</h4><dl><dt><span class="parameter">repositoryName</span></dt><dd>Type: <a href="http://msdn2.microsoft.com/en-us/library/s1wwdcbf" target="_blank">System<span id="LSTE9BC393B_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTE9BC393B_1?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>String</a><br />the repository to associate with the <a href="T_log4net_Repository_ILoggerRepository.htm">ILoggerRepository</a></dd><dt><span class="parameter">repositoryType</span></dt><dd>Type: <a href="http://msdn2.microsoft.com/en-us/library/42892f65" target="_blank">System<span id="LSTE9BC393B_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTE9BC393B_2?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Type</a><br />the type of repository to create, must implement <a href="T_log4net_Repository_ILoggerRepository.htm">ILoggerRepository</a>.
            If this param is null then the default repository type is used.</dd></dl><h4 class="subHeading">Return Value</h4>Type: <a href="T_log4net_Repository_ILoggerRepository.htm">ILoggerRepository</a><br />the repository created<h4 class="subHeading">Implements</h4><a href="M_log4net_Core_IRepositorySelector_CreateRepository_1.htm">IRepositorySelector<span id="LSTE9BC393B_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTE9BC393B_3?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>CreateRepository(String, Type)</a><br /><div class="OH_CollapsibleAreaRegion"><div class="OH_regiontitle">Exceptions</div><div class="OH_CollapsibleArea_HrDiv"><hr class="OH_CollapsibleArea_Hr" /></div></div><div class="OH_clear"> </div><div class="tableSection"><table><tr><th class="ps_exceptionNameColumn">Exception</th><th class="ps_exceptionConditionColumn">Condition</th></tr><tr><td><a href="http://msdn2.microsoft.com/en-us/library/27426hcy" target="_blank">ArgumentNullException</a></td><td>throw if <span class="parameter">repositoryName</span> is null</td></tr><tr><td><a href="T_log4net_Core_LogException.htm">LogException</a></td><td>throw if the <span class="parameter">repositoryName</span> already exists</td></tr></table></div><div class="OH_CollapsibleAreaRegion"><div class="OH_regiontitle">Remarks</div><div class="OH_CollapsibleArea_HrDiv"><hr class="OH_CollapsibleArea_Hr" /></div></div><div class="OH_clear"> </div><p>
            The <a href="T_log4net_Repository_ILoggerRepository.htm">ILoggerRepository</a> created will be associated with the repository
            specified such that a call to <span class="nolink">[M:GetRepository(string)]</span> 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 <span class="parameter">repositoryType</span> is <span class="code">null</span> then the default 
            repository type specified to the constructor is used.
            </p><div class="OH_CollapsibleAreaRegion" id="seeAlsoSection"><div class="OH_regiontitle">See Also</div><div class="OH_CollapsibleArea_HrDiv"><hr class="OH_CollapsibleArea_Hr" /></div></div><div class="OH_clear"> </div><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_log4net_Core_CompactRepositorySelector.htm">CompactRepositorySelector Class</a></div><div class="seeAlsoStyle"><a href="Overload_log4net_Core_CompactRepositorySelector_CreateRepository.htm">CreateRepository Overload</a></div><div class="seeAlsoStyle"><a href="N_log4net_Core.htm">log4net.Core Namespace</a></div></div></div></div></div><div id="OH_footer" class="OH_footer">Apache log4net, Apache and log4net are trademarks of The Apache Software Foundation.<p><a href="http://logging.apache.org/log4net/" target="_blank">Copyright 2004-2017 The Apache Software Foundation</a></p><div class="OH_feedbacklink">Send comments on this topic to
        <a id="HT_MailLink" href="mailto:http%3A%2F%2Flogging.apache.org%2Flog4net%2Fmail-lists.html?Subject=Apache log4net™ SDK Documentation">http://logging.apache.org/log4net/mail-lists.html</a></div><script type="text/javascript">
        var HT_mailLink = document.getElementById("HT_MailLink");
        var HT_mailLinkText = HT_mailLink.innerHTML;
        HT_mailLink.href += ": " + document.title + "\u0026body=" + encodeURIComponent("Your feedback is used to improve the documentation and the product. Your e-mail address will not be used for any other purpose and is disposed of after the issue you report is resolved. While working to resolve the issue that you report, you may be contacted via e-mail to get further details or clarification on the feedback you sent. After the issue you report has been addressed, you may receive an e-mail to let you know that your feedback has been addressed.");
        HT_mailLink.innerHTML = HT_mailLinkText;
        </script> </div></body></html>