Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / 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
- RichTextBox.cs
- AsymmetricSignatureFormatter.cs
- SmiEventSink_DeferedProcessing.cs
- LinkButton.cs
- AutomationPatternInfo.cs
- XmlBuffer.cs
- DataGridColumnReorderingEventArgs.cs
- SQLMoneyStorage.cs
- DataGridViewSortCompareEventArgs.cs
- GlyphRun.cs
- GeneralTransform3D.cs
- URL.cs
- TypeInitializationException.cs
- XmlSchemaSequence.cs
- COM2ColorConverter.cs
- ConstraintCollection.cs
- BuildProviderCollection.cs
- PagerSettings.cs
- AuthenticationModuleElementCollection.cs
- Object.cs
- RayHitTestParameters.cs
- DataGridToolTip.cs
- WebPartsPersonalization.cs
- DragDeltaEventArgs.cs
- URI.cs
- ToolboxBitmapAttribute.cs
- DependencyPropertyKind.cs
- DiagnosticEventProvider.cs
- InitializingNewItemEventArgs.cs
- LOSFormatter.cs
- Encoding.cs
- WindowShowOrOpenTracker.cs
- CheckBox.cs
- ItemList.cs
- SynchronizationScope.cs
- ListViewGroupItemCollection.cs
- PageBreakRecord.cs
- WindowsAuthenticationModule.cs
- StringCollectionMarkupSerializer.cs
- ClockGroup.cs
- Cursors.cs
- ValueExpressions.cs
- MostlySingletonList.cs
- ObjectReferenceStack.cs
- SqlDataSourceQuery.cs
- PopOutPanel.cs
- SessionIDManager.cs
- Column.cs
- RuntimeConfigurationRecord.cs
- CodeLabeledStatement.cs
- ThrowHelper.cs
- PackagePart.cs
- BindingOperations.cs
- LocalClientSecuritySettingsElement.cs
- TimeStampChecker.cs
- InfoCardRSAOAEPKeyExchangeDeformatter.cs
- UnsafeNativeMethodsCLR.cs
- LogEntryUtils.cs
- DBCommandBuilder.cs
- WinFormsComponentEditor.cs
- NumberAction.cs
- DataGridAddNewRow.cs
- SendMailErrorEventArgs.cs
- SoapSchemaExporter.cs
- TypeUtils.cs
- XhtmlBasicImageAdapter.cs
- PointConverter.cs
- XmlException.cs
- DecimalAnimation.cs
- ToolTipAutomationPeer.cs
- StatusBarDrawItemEvent.cs
- GridViewRowCollection.cs
- TextEditorTables.cs
- RemotingException.cs
- TextContainer.cs
- TextTreePropertyUndoUnit.cs
- ConfigurationManagerInternalFactory.cs
- X509UI.cs
- AttributeQuery.cs
- MimeFormatter.cs
- RIPEMD160.cs
- XPathMessageFilter.cs
- DataSourceHelper.cs
- TrustManager.cs
- CreateUserErrorEventArgs.cs
- TextBox.cs
- ClassDataContract.cs
- ManipulationStartingEventArgs.cs
- CodeTypeReference.cs
- DiagnosticStrings.cs
- ThicknessAnimationUsingKeyFrames.cs
- TagPrefixAttribute.cs
- WebPartDeleteVerb.cs
- ListComponentEditorPage.cs
- Exceptions.cs
- ButtonChrome.cs
- BufferCache.cs
- FormsAuthenticationUserCollection.cs
- BrushValueSerializer.cs
- OptimizedTemplateContentHelper.cs