Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / ndp / fx / src / CompMod / System / Diagnostics / TraceUtils.cs / 1 / TraceUtils.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- using System.Configuration; using System; using System.IO; using System.Reflection; using System.Globalization; using System.Collections; using System.Collections.Specialized; namespace System.Diagnostics { internal static class TraceUtils { internal static object GetRuntimeObject(string className, Type baseType, string initializeData) { Object newObject = null; Type objectType = null; if (className.Length == 0) { throw new ConfigurationErrorsException(SR.GetString(SR.EmptyTypeName_NotAllowed)); } objectType = Type.GetType(className); if (objectType == null) { throw new ConfigurationErrorsException(SR.GetString(SR.Could_not_find_type, className)); } if (!baseType.IsAssignableFrom(objectType)) throw new ConfigurationErrorsException(SR.GetString(SR.Incorrect_base_type, className, baseType.FullName)); Exception innerException = null; try { if (String.IsNullOrEmpty(initializeData)) { if (IsOwnedTextWriterTL(objectType)) throw new ConfigurationErrorsException(SR.GetString(SR.TextWriterTL_DefaultConstructor_NotSupported)); // create an object with parameterless constructor ConstructorInfo ctorInfo = objectType.GetConstructor(new Type[] {}); if (ctorInfo == null) throw new ConfigurationErrorsException(SR.GetString(SR.Could_not_get_constructor, className)); newObject = ctorInfo.Invoke(new object[] {}); } else { // create an object with a one-string constructor // first look for a string constructor ConstructorInfo ctorInfo = objectType.GetConstructor(new Type[] { typeof(string) }); if (ctorInfo != null) { // Special case to enable specifying relative path to trace file from config for // our own TextWriterTraceListener derivatives. We will prepend it with fullpath // prefix from config file location if (IsOwnedTextWriterTL(objectType)) { if ((initializeData[0] != Path.DirectorySeparatorChar) && (initializeData[0] != Path.AltDirectorySeparatorChar) && !Path.IsPathRooted(initializeData)) { string filePath = DiagnosticsConfiguration.ConfigFilePath; if (!String.IsNullOrEmpty(filePath)) { string dirPath = Path.GetDirectoryName(filePath); if (dirPath != null) initializeData = Path.Combine(dirPath, initializeData); } } } newObject = ctorInfo.Invoke(new object[] { initializeData }); } else { // now look for another 1 param constructor. ConstructorInfo[] ctorInfos = objectType.GetConstructors(); if (ctorInfos == null) throw new ConfigurationErrorsException(SR.GetString(SR.Could_not_get_constructor, className)); for (int i=0; i// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- using System.Configuration; using System; using System.IO; using System.Reflection; using System.Globalization; using System.Collections; using System.Collections.Specialized; namespace System.Diagnostics { internal static class TraceUtils { internal static object GetRuntimeObject(string className, Type baseType, string initializeData) { Object newObject = null; Type objectType = null; if (className.Length == 0) { throw new ConfigurationErrorsException(SR.GetString(SR.EmptyTypeName_NotAllowed)); } objectType = Type.GetType(className); if (objectType == null) { throw new ConfigurationErrorsException(SR.GetString(SR.Could_not_find_type, className)); } if (!baseType.IsAssignableFrom(objectType)) throw new ConfigurationErrorsException(SR.GetString(SR.Incorrect_base_type, className, baseType.FullName)); Exception innerException = null; try { if (String.IsNullOrEmpty(initializeData)) { if (IsOwnedTextWriterTL(objectType)) throw new ConfigurationErrorsException(SR.GetString(SR.TextWriterTL_DefaultConstructor_NotSupported)); // create an object with parameterless constructor ConstructorInfo ctorInfo = objectType.GetConstructor(new Type[] {}); if (ctorInfo == null) throw new ConfigurationErrorsException(SR.GetString(SR.Could_not_get_constructor, className)); newObject = ctorInfo.Invoke(new object[] {}); } else { // create an object with a one-string constructor // first look for a string constructor ConstructorInfo ctorInfo = objectType.GetConstructor(new Type[] { typeof(string) }); if (ctorInfo != null) { // Special case to enable specifying relative path to trace file from config for // our own TextWriterTraceListener derivatives. We will prepend it with fullpath // prefix from config file location if (IsOwnedTextWriterTL(objectType)) { if ((initializeData[0] != Path.DirectorySeparatorChar) && (initializeData[0] != Path.AltDirectorySeparatorChar) && !Path.IsPathRooted(initializeData)) { string filePath = DiagnosticsConfiguration.ConfigFilePath; if (!String.IsNullOrEmpty(filePath)) { string dirPath = Path.GetDirectoryName(filePath); if (dirPath != null) initializeData = Path.Combine(dirPath, initializeData); } } } newObject = ctorInfo.Invoke(new object[] { initializeData }); } else { // now look for another 1 param constructor. ConstructorInfo[] ctorInfos = objectType.GetConstructors(); if (ctorInfos == null) throw new ConfigurationErrorsException(SR.GetString(SR.Could_not_get_constructor, className)); for (int i=0; i
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SpeechEvent.cs
- UnmanagedBitmapWrapper.cs
- TreeViewEvent.cs
- _NestedSingleAsyncResult.cs
- _NtlmClient.cs
- UiaCoreApi.cs
- RadioButtonRenderer.cs
- HtmlInputText.cs
- EmptyEnumerator.cs
- LinkLabel.cs
- UriScheme.cs
- DataGridViewLayoutData.cs
- _SecureChannel.cs
- LassoHelper.cs
- RecognizedWordUnit.cs
- RuntimeIdentifierPropertyAttribute.cs
- SQLSingle.cs
- MetabaseSettings.cs
- Size.cs
- SafeThreadHandle.cs
- DataSvcMapFileSerializer.cs
- EventLogPermissionAttribute.cs
- ActivityDesigner.cs
- QueryOutputWriter.cs
- HyperLinkColumn.cs
- CookieHandler.cs
- PrintControllerWithStatusDialog.cs
- BinaryParser.cs
- HttpSessionStateBase.cs
- RawMouseInputReport.cs
- ArrayConverter.cs
- XmlNavigatorStack.cs
- SafeNativeMethods.cs
- MailAddress.cs
- ActivityValidator.cs
- SimpleWebHandlerParser.cs
- CodeTypeReferenceCollection.cs
- WorkflowInstance.cs
- XmlIgnoreAttribute.cs
- PageClientProxyGenerator.cs
- NativeMethods.cs
- ObjectItemCollection.cs
- InstallerTypeAttribute.cs
- FormViewModeEventArgs.cs
- PageAdapter.cs
- RefType.cs
- EventMap.cs
- XmlnsDefinitionAttribute.cs
- XpsS0ValidatingLoader.cs
- XmlUnspecifiedAttribute.cs
- WriteFileContext.cs
- TransactionManagerProxy.cs
- ApplicationServicesHostFactory.cs
- DescriptionCreator.cs
- Brush.cs
- DesignColumnCollection.cs
- SplitterEvent.cs
- HandlerBase.cs
- TextInfo.cs
- RenamedEventArgs.cs
- IntegrationExceptionEventArgs.cs
- ItemsChangedEventArgs.cs
- DataGridViewColumnCollection.cs
- DuplexChannel.cs
- ThreadStartException.cs
- XPathNodeList.cs
- Condition.cs
- DbConnectionClosed.cs
- StreamUpdate.cs
- DataFormats.cs
- RoleService.cs
- XmlChildEnumerator.cs
- DesignerEditorPartChrome.cs
- ImageConverter.cs
- DispatchProxy.cs
- CqlIdentifiers.cs
- ScriptReferenceBase.cs
- BindingNavigator.cs
- PersonalizableTypeEntry.cs
- IssuanceLicense.cs
- WizardForm.cs
- Camera.cs
- Int32Storage.cs
- DataSourceConverter.cs
- ValueSerializerAttribute.cs
- ContainerActivationHelper.cs
- WebPartConnectVerb.cs
- TextParentUndoUnit.cs
- ListViewInsertedEventArgs.cs
- HtmlEmptyTagControlBuilder.cs
- AuthenticationService.cs
- DetailsViewInsertEventArgs.cs
- Grid.cs
- ExpandCollapsePattern.cs
- CachedPathData.cs
- WindowsEditBoxRange.cs
- Transform3DGroup.cs
- CompilerGlobalScopeAttribute.cs
- CSharpCodeProvider.cs
- XmlDictionaryReaderQuotasElement.cs