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
- PropVariant.cs
- DesignerActionHeaderItem.cs
- Control.cs
- CommandConverter.cs
- HtmlTableRow.cs
- NotifyIcon.cs
- SortedList.cs
- DefinitionBase.cs
- ManifestResourceInfo.cs
- SelectionPatternIdentifiers.cs
- PropertyRef.cs
- MobileCategoryAttribute.cs
- ThreadAbortException.cs
- SystemBrushes.cs
- ThreadSafeMessageFilterTable.cs
- StandardCommands.cs
- DiscoveryExceptionDictionary.cs
- EntityKeyElement.cs
- IpcManager.cs
- AssemblyUtil.cs
- OleCmdHelper.cs
- HtmlShim.cs
- DataControlFieldCell.cs
- HideDisabledControlAdapter.cs
- Parser.cs
- ServicePoint.cs
- OptionUsage.cs
- TextBoxRenderer.cs
- Rect.cs
- ActivityDesigner.cs
- GenerateScriptTypeAttribute.cs
- SemaphoreFullException.cs
- BaseTreeIterator.cs
- TTSEngineTypes.cs
- DataListGeneralPage.cs
- FileSecurity.cs
- FloatMinMaxAggregationOperator.cs
- CharacterMetrics.cs
- GPPOINT.cs
- TextEditorSpelling.cs
- Variable.cs
- DesignerLinkAdapter.cs
- PolyLineSegment.cs
- SQLInt64.cs
- TableLayoutStyleCollection.cs
- HtmlElementCollection.cs
- HtmlControl.cs
- TextContainerHelper.cs
- EmptyQuery.cs
- SqlDataSource.cs
- EventLogPermissionAttribute.cs
- XmlEncodedRawTextWriter.cs
- XmlSignatureManifest.cs
- SemanticResultKey.cs
- ListenerBinder.cs
- WinCategoryAttribute.cs
- SQLMoney.cs
- CompilerInfo.cs
- ApplicationHost.cs
- StoreAnnotationsMap.cs
- AsyncOperationManager.cs
- XamlSerializerUtil.cs
- DbReferenceCollection.cs
- TaskFormBase.cs
- HttpGetClientProtocol.cs
- ColumnTypeConverter.cs
- ProcessModelInfo.cs
- CodeRegionDirective.cs
- SqlWebEventProvider.cs
- GeneralTransform.cs
- IndexerNameAttribute.cs
- DSASignatureFormatter.cs
- CommonObjectSecurity.cs
- _LocalDataStoreMgr.cs
- Size3DConverter.cs
- XmlImplementation.cs
- Peer.cs
- TrackingExtract.cs
- TrackBar.cs
- WebPartCatalogAddVerb.cs
- WindowsListView.cs
- SoapInteropTypes.cs
- StreamInfo.cs
- TransactionBehavior.cs
- SqlDataSourceFilteringEventArgs.cs
- CharConverter.cs
- SplitterPanel.cs
- BatchParser.cs
- SchemaObjectWriter.cs
- TransformValueSerializer.cs
- ScriptingJsonSerializationSection.cs
- IgnoreDataMemberAttribute.cs
- Panel.cs
- TreeNodeBindingCollection.cs
- IntSecurity.cs
- Contracts.cs
- HttpResponseHeader.cs
- Image.cs
- WindowsRegion.cs
- SafeCloseHandleCritical.cs