Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / 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
- BindingOperations.cs
- TraceSection.cs
- RefreshEventArgs.cs
- ObjectParameter.cs
- NumericUpDown.cs
- ThreadNeutralSemaphore.cs
- ImpersonateTokenRef.cs
- WebPartEditorOkVerb.cs
- Rect3D.cs
- DrawingServices.cs
- ObjectListItemCollection.cs
- CodeConditionStatement.cs
- XmlBinaryWriterSession.cs
- ContentDisposition.cs
- UniformGrid.cs
- CollaborationHelperFunctions.cs
- CodeDirectiveCollection.cs
- StatusInfoItem.cs
- ProfileEventArgs.cs
- MasterPageParser.cs
- QilValidationVisitor.cs
- EntityContainer.cs
- AttachmentService.cs
- UserNameSecurityToken.cs
- CatalogPartChrome.cs
- IItemContainerGenerator.cs
- MethodRental.cs
- versioninfo.cs
- AnimatedTypeHelpers.cs
- TimeEnumHelper.cs
- SoapBinding.cs
- SymbolDocumentInfo.cs
- AstTree.cs
- SessionStateSection.cs
- UnsafeNativeMethods.cs
- altserialization.cs
- ResourceManagerWrapper.cs
- MethodExecutor.cs
- GACMembershipCondition.cs
- TextBoxBase.cs
- PerspectiveCamera.cs
- OdbcTransaction.cs
- DataColumnMapping.cs
- PropertyValueUIItem.cs
- PageThemeParser.cs
- SynchronizedPool.cs
- Base64Decoder.cs
- SubMenuStyleCollectionEditor.cs
- StringUtil.cs
- grammarelement.cs
- _ChunkParse.cs
- NoneExcludedImageIndexConverter.cs
- XmlSchemaSimpleType.cs
- StoreContentChangedEventArgs.cs
- UseManagedPresentationBindingElement.cs
- FilterException.cs
- PrintDialog.cs
- nulltextcontainer.cs
- ConnectionOrientedTransportChannelListener.cs
- Int32EqualityComparer.cs
- XPathSelfQuery.cs
- PassportAuthentication.cs
- RegistryExceptionHelper.cs
- PasswordValidationException.cs
- Journaling.cs
- MD5.cs
- HttpListener.cs
- CustomErrorsSection.cs
- RangeValuePattern.cs
- SchemaEntity.cs
- ExecutedRoutedEventArgs.cs
- BlockCollection.cs
- XmlSchemaSubstitutionGroup.cs
- TdsParser.cs
- SqlDataSourceSelectingEventArgs.cs
- MsmqIntegrationMessagePool.cs
- VSWCFServiceContractGenerator.cs
- MessageBox.cs
- PrintingPermission.cs
- DbConnectionFactory.cs
- XmlAggregates.cs
- ObjectDataSourceEventArgs.cs
- ConditionedDesigner.cs
- ContourSegment.cs
- AncillaryOps.cs
- XPathAncestorQuery.cs
- Brushes.cs
- AspNetSynchronizationContext.cs
- FlowLayoutSettings.cs
- UIAgentAsyncBeginRequest.cs
- ModulesEntry.cs
- COM2ColorConverter.cs
- EasingKeyFrames.cs
- ReadOnlyPropertyMetadata.cs
- ParamArrayAttribute.cs
- ISAPIApplicationHost.cs
- DatatypeImplementation.cs
- CodeTypeDelegate.cs
- querybuilder.cs
- BindingMemberInfo.cs