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
- translator.cs
- StateManagedCollection.cs
- CreateUserWizard.cs
- FontStretch.cs
- CopyAttributesAction.cs
- ExpressionNode.cs
- ViewBox.cs
- ArithmeticLiteral.cs
- InputChannel.cs
- CompilerGlobalScopeAttribute.cs
- BasicKeyConstraint.cs
- GeneralTransform.cs
- AmbientProperties.cs
- GC.cs
- SystemTcpConnection.cs
- DesignerAutoFormat.cs
- PolyQuadraticBezierSegmentFigureLogic.cs
- UpDownEvent.cs
- SQLUtility.cs
- FormsAuthenticationTicket.cs
- recordstatescratchpad.cs
- PlainXmlWriter.cs
- EntitySet.cs
- WebBrowser.cs
- DelegateSerializationHolder.cs
- Dynamic.cs
- InputBindingCollection.cs
- BuildProviderCollection.cs
- HostedHttpRequestAsyncResult.cs
- RoutedPropertyChangedEventArgs.cs
- SerialErrors.cs
- Range.cs
- XmlWellformedWriter.cs
- DragEventArgs.cs
- ViewSimplifier.cs
- Wizard.cs
- ShaderEffect.cs
- InvalidPropValue.cs
- ReflectionHelper.cs
- codemethodreferenceexpression.cs
- GridViewDeleteEventArgs.cs
- ToolStripProfessionalLowResolutionRenderer.cs
- ChameleonKey.cs
- _UriSyntax.cs
- HttpModulesInstallComponent.cs
- TextTrailingWordEllipsis.cs
- _IPv6Address.cs
- _NativeSSPI.cs
- RoleManagerEventArgs.cs
- AttributeCollection.cs
- ConfigurationValue.cs
- DESCryptoServiceProvider.cs
- ApplicationServiceManager.cs
- SchemaNamespaceManager.cs
- DiscoveryOperationContextExtension.cs
- RefType.cs
- AuthenticationConfig.cs
- WinFormsSpinner.cs
- ColorBuilder.cs
- DateTimeUtil.cs
- State.cs
- ClrProviderManifest.cs
- Psha1DerivedKeyGenerator.cs
- GridItemPattern.cs
- SafeCryptHandles.cs
- MetadataArtifactLoaderFile.cs
- MemberAccessException.cs
- DesignerSerializerAttribute.cs
- ActivationArguments.cs
- QilNode.cs
- InternalBufferOverflowException.cs
- DependencyPropertyValueSerializer.cs
- MetadataItemEmitter.cs
- DateTimeStorage.cs
- MimeFormReflector.cs
- PatternMatcher.cs
- DynamicValidatorEventArgs.cs
- ParallelEnumerable.cs
- assertwrapper.cs
- Vertex.cs
- SocketException.cs
- LocatorManager.cs
- ColumnResizeUndoUnit.cs
- EdmTypeAttribute.cs
- AsymmetricSignatureFormatter.cs
- SendMailErrorEventArgs.cs
- DoubleAverageAggregationOperator.cs
- DisableDpiAwarenessAttribute.cs
- DateTimeOffset.cs
- MyContact.cs
- SqlWebEventProvider.cs
- ListViewItemSelectionChangedEvent.cs
- Point3DCollection.cs
- TreeNodeBindingCollection.cs
- safesecurityhelperavalon.cs
- WebPermission.cs
- ListViewInsertionMark.cs
- TemplateControlCodeDomTreeGenerator.cs
- HeaderUtility.cs
- XmlnsPrefixAttribute.cs