﻿<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>SystemInfo Methods</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="SystemInfo class, methods" /><meta name="Microsoft.Help.Id" content="Methods.T:log4net.Util.SystemInfo" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="log4net.Util" /><meta name="file" content="Methods_T_log4net_Util_SystemInfo" /><meta name="guid" content="Methods_T_log4net_Util_SystemInfo" /></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">SystemInfo Methods</td><td class="OH_tdRunningTitleColumn">Apache log4net™ SDK Documentation</td></tr></table><div id="mainSection"><div id="mainBody"><span class="introStyle"></span><p>The <a href="T_log4net_Util_SystemInfo.htm">SystemInfo</a> type exposes the following members.</p><div class="OH_CollapsibleAreaRegion"><div class="OH_regiontitle">Methods</div><div class="OH_CollapsibleArea_HrDiv"><hr class="OH_CollapsibleArea_Hr" /></div></div><div class="OH_clear"> </div><table id="memberList" class="members"><tr><th class="ps_iconColumn">
								 
							</th><th>Name</th><th>Description</th></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="M_log4net_Util_SystemInfo_AssemblyFileName.htm">AssemblyFileName</a></td><td><div class="summary">
            Gets the file name portion of the <a href="http://msdn2.microsoft.com/en-us/library/xbe1wdx9" target="_blank">Assembly</a>, including the extension.
            </div></td></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="M_log4net_Util_SystemInfo_AssemblyLocationInfo.htm">AssemblyLocationInfo</a></td><td><div class="summary">
            Gets the assembly location path for the specified assembly.
            </div></td></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="M_log4net_Util_SystemInfo_AssemblyQualifiedName.htm">AssemblyQualifiedName</a></td><td><div class="summary">
            Gets the fully qualified name of the <a href="http://msdn2.microsoft.com/en-us/library/42892f65" target="_blank">Type</a>, including 
            the name of the assembly from which the <a href="http://msdn2.microsoft.com/en-us/library/42892f65" target="_blank">Type</a> was 
            loaded.
            </div></td></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="M_log4net_Util_SystemInfo_AssemblyShortName.htm">AssemblyShortName</a></td><td><div class="summary">
            Gets the short name of the <a href="http://msdn2.microsoft.com/en-us/library/xbe1wdx9" target="_blank">Assembly</a>.
            </div></td></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="M_log4net_Util_SystemInfo_ConvertToFullPath.htm">ConvertToFullPath</a></td><td><div class="summary">
            Convert a path into a fully qualified local file path.
            </div></td></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="M_log4net_Util_SystemInfo_CreateArgumentOutOfRangeException.htm">CreateArgumentOutOfRangeException</a></td><td><div class="summary">
            Create an <a href="http://msdn2.microsoft.com/en-us/library/8xt94y6e" target="_blank">ArgumentOutOfRangeException</a></div></td></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="M_log4net_Util_SystemInfo_CreateCaseInsensitiveHashtable.htm">CreateCaseInsensitiveHashtable</a></td><td><div class="summary">
            Creates a new case-insensitive instance of the <a href="http://msdn2.microsoft.com/en-us/library/aahzb21x" target="_blank">Hashtable</a> class with the default initial capacity. 
            </div></td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/bsc2ak47" target="_blank">Equals</a></td><td><div class="summary">
                    Determines whether the specified <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a> is equal to the current <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.
                </div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="M_log4net_Util_SystemInfo_EqualsIgnoringCase.htm">EqualsIgnoringCase</a></td><td><div class="summary">
            Tests two strings for equality, the ignoring case.
            </div></td></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="M_log4net_Util_SystemInfo_GetAppSetting.htm">GetAppSetting</a></td><td><div class="summary">
            Lookup an application setting
            </div></td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/zdee4b3y" target="_blank">GetHashCode</a></td><td><div class="summary">
                    Serves as a hash function for a particular type. 
                </div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/dfwy45w9" target="_blank">GetType</a></td><td><div class="summary">
                    Gets the <a href="http://msdn2.microsoft.com/en-us/library/42892f65" target="_blank">Type</a> of the current instance.
                </div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="M_log4net_Util_SystemInfo_GetTypeFromString_1.htm">GetTypeFromString(String, Boolean, Boolean)</a></td><td><div class="summary">
            Loads the type specified in the type string.
            </div></td></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="M_log4net_Util_SystemInfo_GetTypeFromString.htm">GetTypeFromString(Assembly, String, Boolean, Boolean)</a></td><td><div class="summary">
            Loads the type specified in the type string.
            </div></td></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="M_log4net_Util_SystemInfo_GetTypeFromString_2.htm">GetTypeFromString(Type, String, Boolean, Boolean)</a></td><td><div class="summary">
            Loads the type specified in the type string.
            </div></td></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="M_log4net_Util_SystemInfo_NewGuid.htm">NewGuid</a></td><td><div class="summary">
            Generate a new guid
            </div></td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/7bxwbwt2" target="_blank">ToString</a></td><td><div class="summary">
                    Returns a <a href="http://msdn2.microsoft.com/en-us/library/s1wwdcbf" target="_blank">String</a> that represents the current <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.
                </div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="M_log4net_Util_SystemInfo_TryParse.htm">TryParse(String, Int16<span id="LSTF6BB6E18_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTF6BB6E18_0?cpp=%");</script>)</a></td><td><div class="summary">
            Parse a string into an <a href="http://msdn2.microsoft.com/en-us/library/e07e6fds" target="_blank">Int16</a> value
            </div></td></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="M_log4net_Util_SystemInfo_TryParse_1.htm">TryParse(String, Int32<span id="LSTF6BB6E18_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTF6BB6E18_1?cpp=%");</script>)</a></td><td><div class="summary">
            Parse a string into an <a href="http://msdn2.microsoft.com/en-us/library/td2s409d" target="_blank">Int32</a> value
            </div></td></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="M_log4net_Util_SystemInfo_TryParse_2.htm">TryParse(String, Int64<span id="LSTF6BB6E18_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTF6BB6E18_2?cpp=%");</script>)</a></td><td><div class="summary">
            Parse a string into an <a href="http://msdn2.microsoft.com/en-us/library/6yy583ek" target="_blank">Int64</a> value
            </div></td></tr></table><a href="#mainBody">Top</a><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_Util_SystemInfo.htm">SystemInfo Class</a></div><div class="seeAlsoStyle"><a href="N_log4net_Util.htm">log4net.Util 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-2016 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>