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
- FrameworkElementAutomationPeer.cs
- InplaceBitmapMetadataWriter.cs
- WindowsTokenRoleProvider.cs
- TraceLevelStore.cs
- GPPOINTF.cs
- CallbackTimeoutsBehavior.cs
- ProfileGroupSettings.cs
- CodeCompiler.cs
- ListBoxChrome.cs
- DrawingCollection.cs
- ValueUnavailableException.cs
- ResourceReader.cs
- TextMetrics.cs
- externdll.cs
- WebHeaderCollection.cs
- ThreadStaticAttribute.cs
- BitmapEffectDrawing.cs
- VirtualPathProvider.cs
- BlurEffect.cs
- FormViewDeleteEventArgs.cs
- AutoScrollHelper.cs
- WpfSharedBamlSchemaContext.cs
- XsdDateTime.cs
- CachedPathData.cs
- Gdiplus.cs
- PageStatePersister.cs
- PanelStyle.cs
- ExecutionContext.cs
- ComplexLine.cs
- SelectedDatesCollection.cs
- ClickablePoint.cs
- XPathExpr.cs
- SqlDataAdapter.cs
- InvokeMethod.cs
- EtwTrace.cs
- PageScaling.cs
- CodeSubDirectory.cs
- MergeFilterQuery.cs
- RuntimeArgumentHandle.cs
- AccessViolationException.cs
- IDQuery.cs
- cache.cs
- Reference.cs
- RootBuilder.cs
- HtmlTextArea.cs
- PocoPropertyAccessorStrategy.cs
- RowCache.cs
- TabControlDesigner.cs
- ObjectParameter.cs
- DataGridViewEditingControlShowingEventArgs.cs
- Button.cs
- RequestContextBase.cs
- HistoryEventArgs.cs
- AudioLevelUpdatedEventArgs.cs
- MergePropertyDescriptor.cs
- RectAnimation.cs
- DesigntimeLicenseContext.cs
- PropertyCollection.cs
- FileEnumerator.cs
- ProtectedConfigurationProviderCollection.cs
- WindowsAuthenticationModule.cs
- ViewStateModeByIdAttribute.cs
- XmlSerializerSection.cs
- PackageFilter.cs
- TableLayoutRowStyleCollection.cs
- XmlSiteMapProvider.cs
- COM2PropertyBuilderUITypeEditor.cs
- SetIterators.cs
- List.cs
- X509Extension.cs
- DbConnectionInternal.cs
- AnyReturnReader.cs
- OverlappedContext.cs
- ServiceDescriptionSerializer.cs
- PrincipalPermission.cs
- PasswordPropertyTextAttribute.cs
- WebPartChrome.cs
- ChangeProcessor.cs
- MsmqIntegrationMessageProperty.cs
- PrivilegedConfigurationManager.cs
- ProtectedConfiguration.cs
- Scripts.cs
- ProfessionalColors.cs
- ParameterToken.cs
- SqlBulkCopyColumnMappingCollection.cs
- ListMarkerSourceInfo.cs
- ItemsChangedEventArgs.cs
- SqlParameterizer.cs
- OrderPreservingSpoolingTask.cs
- TableCell.cs
- CacheForPrimitiveTypes.cs
- KerberosSecurityTokenParameters.cs
- DbSourceCommand.cs
- MatrixValueSerializer.cs
- ExceptionValidationRule.cs
- BindableTemplateBuilder.cs
- DataAccessor.cs
- ClaimTypeRequirement.cs
- ResourceCategoryAttribute.cs
- SQLGuid.cs