<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>DefaultRepositorySelector.GetAllRepositories Method</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">DefaultRepositorySelector.GetAllRepositories�Method�</h1>
      </div>
    </div>
    <div id="nstext">
      <p> Gets a list of <a href="log4net.Repository.ILoggerRepository.html">ILoggerRepository</a> objects </p>
      <div class="syntax">
        <span class="lang">[Visual�Basic]</span>
        <br />NotOverridable�Public�Function�GetAllRepositories()�As�<a href="log4net.Repository.ILoggerRepository.html">ILoggerRepository()</a>�_<div>����Implements�<a href="log4net.Core.IRepositorySelector.GetAllRepositories.html">IRepositorySelector.GetAllRepositories</a></div></div>
      <div class="syntax">
        <span class="lang">[C#]</span>
        <br />public�<a href="log4net.Repository.ILoggerRepository.html">ILoggerRepository[]</a>�GetAllRepositories();</div>
      <h4 class="dtH4">Return Value</h4>
      <p>an array of all known <a href="log4net.Repository.ILoggerRepository.html">ILoggerRepository</a> objects</p>
      <h4 class="dtH4">Implements</h4>
      <p>
        <a href="log4net.Core.IRepositorySelector.GetAllRepositories.html">IRepositorySelector.GetAllRepositories</a>
      </p>
      <h4 class="dtH4">Remarks</h4>
            <p> Gets an array of all of the repositories created by this selector. </p>
            <h4 class="dtH4">See Also</h4><p><a href="log4net.Core.DefaultRepositorySelector.html">DefaultRepositorySelector Class</a> | <a href="log4net.Core.html">log4net.Core Namespace</a></p><object type="application/x-oleobject" classid="clsid:1e2a7bd0-dab9-11d0-b93a-00c04fc99f9e" viewastext="true" style="display: none;"><param name="Keyword" value="GetAllRepositories method"></param><param name="Keyword" value="GetAllRepositories method, DefaultRepositorySelector class"></param><param name="Keyword" value="DefaultRepositorySelector.GetAllRepositories method"></param></object><hr /><div id="footer"><a href='http://logging.apache.org/log4net/'>Copyright 2004-2013 The Apache Software Foundation.</a><br></br>Apache log4net, Apache and log4net are trademarks of The Apache Software Foundation.</div></div>
  </body>
</html>
