<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>ConverterRegistry.AddConverter Method (Type, Object)</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">ConverterRegistry.AddConverter�Method�(Type, Object)</h1>
      </div>
    </div>
    <div id="nstext">
      <p> Adds a converter for a specific type. </p>
      <div class="syntax">
        <span class="lang">[Visual�Basic]</span>
        <br />Overloads�Public�Shared�Sub�AddConverter( _<br />���ByVal <i>destinationType</i>�As�<a href="ms-help://MS.NETFrameworkSDKv1.1/cpref/html/frlrfSystemTypeClassTopic.htm">Type</a>,�_<br />���ByVal <i>converter</i>�As�<a href="ms-help://MS.NETFrameworkSDKv1.1/cpref/html/frlrfSystemObjectClassTopic.htm">Object</a>�_<br />)</div>
      <div class="syntax">
        <span class="lang">[C#]</span>
        <br />public�static�<a href="ms-help://MS.NETFrameworkSDKv1.1/cpref/html/frlrfSystemVoidClassTopic.htm">void</a>�AddConverter(<br />���<a href="ms-help://MS.NETFrameworkSDKv1.1/cpref/html/frlrfSystemTypeClassTopic.htm">Type</a>�<i>destinationType</i>,<br />���<a href="ms-help://MS.NETFrameworkSDKv1.1/cpref/html/frlrfSystemObjectClassTopic.htm">object</a>�<i>converter</i><br />);</div>
      <h4 class="dtH4">Parameters</h4>
      <dl>
        <dt>
          <i>destinationType</i>
        </dt>
        <dd>The type being converted to.</dd>
        <dt>
          <i>converter</i>
        </dt>
        <dd>The type converter to use to convert to the destination type.</dd>
      </dl>
      <h4 class="dtH4">Remarks</h4>
            <p> Adds a converter instance for a specific type. </p>
            <h4 class="dtH4">See Also</h4><p><a href="log4net.Util.TypeConverters.ConverterRegistry.html">ConverterRegistry Class</a> | <a href="log4net.Util.TypeConverters.html">log4net.Util.TypeConverters Namespace</a> | <a href="log4net.Util.TypeConverters.ConverterRegistry.AddConverter_overloads.html">ConverterRegistry.AddConverter 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="AddConverter method"></param><param name="Keyword" value="AddConverter method, ConverterRegistry class"></param><param name="Keyword" value="ConverterRegistry.AddConverter 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>
