﻿<html xmlns:MSHelp="http://msdn.microsoft.com/mshelp" xmlns:mshelp="http://msdn.microsoft.com/mshelp"><head><link rel="SHORTCUT ICON" href="./../icons/favicon.ico" /><style type="text/css">.OH_CodeSnippetContainerTabLeftActive, .OH_CodeSnippetContainerTabLeft,.OH_CodeSnippetContainerTabLeftDisabled { backgroundImageName: tabLeftBG.gif; }.OH_CodeSnippetContainerTabRightActive, .OH_CodeSnippetContainerTabRight,.OH_CodeSnippetContainerTabRightDisabled { backgroundImageName: tabRightBG.gif; }.OH_footer { backgroundImageName: footer_slice.gif; background-position: top; background-repeat: repeat-x; }</style><link rel="stylesheet" type="text/css" href="./../styles/branding.css" /><link rel="stylesheet" type="text/css" href="./../styles/branding-en-US.css" /><style type="text/css">
			body
			{
			border-left:5px solid #e6e6e6;
			overflow-x:scroll;
			overflow-y:scroll;
			}
		</style><script src="./../scripts/branding.js" type="text/javascript"><!----></script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>LoggerManager.RepositorySelector Property </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="RepositorySelector property" /><meta name="System.Keywords" content="LoggerManager.RepositorySelector property" /><meta name="Microsoft.Help.F1" content="log4net.Core.LoggerManager.RepositorySelector" /><meta name="Microsoft.Help.F1" content="log4net.Core.LoggerManager.get_RepositorySelector" /><meta name="Microsoft.Help.F1" content="log4net.Core.LoggerManager.set_RepositorySelector" /><meta name="Microsoft.Help.Id" content="P:log4net.Core.LoggerManager.RepositorySelector" /><meta name="Description" content="Gets or sets the repository selector used by the ." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="'true'" /><meta name="container" content="log4net.Core" /><meta name="file" content="P_log4net_Core_LoggerManager_RepositorySelector" /><meta name="guid" content="P_log4net_Core_LoggerManager_RepositorySelector" /><link type="text/css" rel="stylesheet" href="ms-help://Hx/HxRuntime/HxLink.css" /><meta name="SelfBranded" content="true" /></head><body onload="onLoad()" class="primary-mtps-offline-document"><div class="OH_outerDiv"><div class="OH_outerContent"><table class="TitleTable"><tr><td class="OH_tdTitleColumn">LoggerManager<span id="ID0EBBABAAA"> </span><script type="text/javascript">
					addToLanSpecTextIdSet("ID0EBBABAAA?vb=.|cpp=::|cs=.|fs=.|nu=.");
				</script>RepositorySelector Property </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">
            Gets or sets the repository selector used by the <a href="T_log4net_LogManager.htm" target="">LogManager</a>.
            </div><p></p><b>Namespace:</b> <a href="N_log4net_Core.htm" target="">log4net.Core</a><br /><b>Assembly:</b> <span sdata="assembly">log4net</span> (in log4net.dll) Version: 1.2.15.0 (1.2.15.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 id="snippetGroup_Syntax" class="code"><div id="ID0ECHDAAAAA" class="OH_CodeSnippetContainer"><div class="OH_CodeSnippetContainerTabs" id="ID0ECHDAAAAA_tabs"><div class="OH_CodeSnippetContainerTabLeftActive" id="ID0ECHDAAAAA_tabimgleft"></div><div id="ID0ECHDAAAAA_tab1" class="OH_CodeSnippetContainerTabActive" EnableCopyCode="true"><a href="#" onclick="javascript:ChangeTab('ID0ECHDAAAAA','C#','1','4');return false;">C#</a></div><div id="ID0ECHDAAAAA_tab2" class="OH_CodeSnippetContainerTab" EnableCopyCode="true"><a href="#" onclick="javascript:ChangeTab('ID0ECHDAAAAA','Visual Basic','2','4');return false;">VB</a></div><div id="ID0ECHDAAAAA_tab3" class="OH_CodeSnippetContainerTab" EnableCopyCode="true"><a href="#" onclick="javascript:ChangeTab('ID0ECHDAAAAA','Visual C++','3','4');return false;">C++</a></div><div id="ID0ECHDAAAAA_tab4" class="OH_CodeSnippetContainerTabDisabledNotFirst" EnableCopyCode="true" disabled="true"><a>F#</a></div><div class="OH_CodeSnippetContainerTabRight" id="ID0ECHDAAAAA_tabimgright"></div></div><div id="ID0ECHDAAAAA_codecollection" class="OH_CodeSnippetContainerCodeCollection"><div class="OH_CodeSnippetToolBar"><div class="OH_CodeSnippetToolBarText"><a id="ID0ECHDAAAAA_ViewColorized" href="#" onclick="javascript:ExchangeTitleContent('ID0ECHDAAAAA','4')" title="View Colorized" style="display: none">View Colorized</a><a id="ID0ECHDAAAAA_copycode" href="#" onclick="javascript:CopyToClipboard('ID0ECHDAAAAA','4')" title="Copy to Clipboard">Copy to Clipboard</a><a id="ID0ECHDAAAAA_PrintText" class="OH_PrintText" href="#" onclick="javascript:Print('ID0ECHDAAAAA','4')" title="Print">Print</a></div></div><div id="ID0ECHDAAAAA_code_Div1" class="OH_CodeSnippetContainerCode" style="display: block"><pre><span class="keyword">public</span> <span class="keyword">static</span> <span class="identifier">IRepositorySelector</span> <span class="identifier">RepositorySelector</span> { <span class="keyword">get</span>; <span class="keyword">set</span>; }</pre></div><div id="ID0ECHDAAAAA_code_Plain_Div1" class="OH_CodeSnippetContainerCode" style="display: none"><pre>public static IRepositorySelector RepositorySelector { get; set; }</pre></div><div id="ID0ECHDAAAAA_code_Div2" class="OH_CodeSnippetContainerCode" style="display: none"><pre><span class="keyword">Public</span> <span class="keyword">Shared</span> <span class="keyword">Property</span> <span class="identifier">RepositorySelector</span> <span class="keyword">As</span> <span class="identifier">IRepositorySelector</span> 
	<span class="keyword">Get</span> 
	<span class="keyword">Set</span></pre></div><div id="ID0ECHDAAAAA_code_Plain_Div2" class="OH_CodeSnippetContainerCode" style="display: none"><pre>Public Shared Property RepositorySelector As IRepositorySelector 
	Get 
	Set</pre></div><div id="ID0ECHDAAAAA_code_Div3" class="OH_CodeSnippetContainerCode" style="display: none"><pre><span class="keyword">public</span>:
<span class="keyword">static</span> <span class="keyword">property</span> <span class="identifier">IRepositorySelector</span>^ <span class="identifier">RepositorySelector</span> {
	<span class="identifier">IRepositorySelector</span>^ <span class="keyword">get</span> ();
	<span class="keyword">void</span> <span class="keyword">set</span> (<span class="identifier">IRepositorySelector</span>^ <span class="parameter">value</span>);
}</pre></div><div id="ID0ECHDAAAAA_code_Plain_Div3" class="OH_CodeSnippetContainerCode" style="display: none"><pre>public:
static property IRepositorySelector^ RepositorySelector {
	IRepositorySelector^ get ();
	void set (IRepositorySelector^ value);
}</pre></div><div id="ID0ECHDAAAAA_code_Div4" class="OH_CodeSnippetContainerCode" style="display: none"><pre /></div><div id="ID0ECHDAAAAA_code_Plain_Div4" class="OH_CodeSnippetContainerCode" style="display: none"><pre /></div></div></div><script>addSpecificTextLanguageTagSet('ID0ECHDAAAAA');</script></div><h4 class="subHeading">Property Value</h4>Type: <a href="T_log4net_Core_IRepositorySelector.htm" target="">IRepositorySelector</a><br />
            The repository selector used by the <a href="T_log4net_LogManager.htm" target="">LogManager</a>.
            <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 repository selector (<a href="T_log4net_Core_IRepositorySelector.htm" target="">IRepositorySelector</a>) is used by 
            the <a href="T_log4net_LogManager.htm" target="">LogManager</a> to create and select repositories 
            (<a href="T_log4net_Repository_ILoggerRepository.htm" target="">ILoggerRepository</a>).
            </p><p>
            The caller to <a href="T_log4net_LogManager.htm" target="">LogManager</a> supplies either a string name 
            or an assembly (if not supplied the assembly is inferred using 
            <span class="nolink">[M:Assembly.GetCallingAssembly()]</span>).
            </p><p>
            This context is used by the selector to lookup a specific repository.
            </p><p>
            For the full .NET Framework, the default repository is <span class="code">DefaultRepositorySelector</span>;
            for the .NET Compact Framework <span class="code">CompactRepositorySelector</span> is the default
            repository.
            </p><a name="seeAlsoSection"><!----></a><div class="OH_CollapsibleAreaRegion"><div class="OH_regiontitle">See Also</div><div class="OH_CollapsibleArea_HrDiv"><hr class="OH_CollapsibleArea_Hr" /></div></div><div class="OH_clear"></div><div class="seeAlsoStyle"><a href="T_log4net_Core_LoggerManager.htm" target="">LoggerManager Class</a></div><div class="seeAlsoStyle"><a href="AllMembers_T_log4net_Core_LoggerManager.htm" target="">LoggerManager Members</a></div><div class="seeAlsoStyle"><a href="N_log4net_Core.htm" target="">log4net.Core Namespace</a></div></div></div></div></div><div id="OH_footer" class="OH_footer"><p>Apache log4net, Apache and log4net are trademarks of The Apache Software Foundation.</p><p><a href="http://logging.apache.org/log4net/" target="_blank"><img src="./../icons/online_icon.gif" class="OH_offlineIcon" alt="Online" title="Online" /> 
						Copyright 2004-2015 The Apache Software Foundation (http://logging.apache.org/log4net/)</a></p><div class="OH_feedbacklink"><a href="mailto:http://logging.apache.org/log4net/mail-lists.html?subject=Apache+log4net%e2%84%a2+SDK+Documentation+LoggerManager.RepositorySelector+Property++100+EN-US&amp;body=Your%20feedback%20is%20used%20to%20improve%20the%20documentation%20and%20the%20product.%20Your%20e-mail%20address%20will%20not%20be%20used%20for%20any%20other%20purpose%20and%20is%20disposed%20of%20after%20the%20issue%20you%20report%20is%20resolved.%20While%20working%20to%20resolve%20the%20issue%20that%20you%20report%2c%20you%20may%20be%20contacted%20via%20e-mail%20to%20get%20further%20details%20or%20clarification%20on%20the%20feedback%20you%20sent.%20After%20the%20issue%20you%20report%20has%20been%20addressed%2c%20you%20may%20receive%20an%20e-mail%20to%20let%20you%20know%20that%20your%20feedback%20has%20been%20addressed.">Send Feedback</a> on this topic to http://logging.apache.org/log4net/mail-lists.html.</div></div></body></html>