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
- SignatureDescription.cs
- FixedSOMPageConstructor.cs
- SQLChars.cs
- SecurityListenerSettingsLifetimeManager.cs
- ToolStrip.cs
- ArgumentValidation.cs
- HtmlLabelAdapter.cs
- FontStyle.cs
- QilPatternVisitor.cs
- PropertyGridView.cs
- DataRow.cs
- MessagePropertyDescriptionCollection.cs
- FillErrorEventArgs.cs
- ConfigurationException.cs
- FragmentQueryKB.cs
- IListConverters.cs
- SecurityManager.cs
- ObfuscationAttribute.cs
- ResourceExpressionEditor.cs
- GlyphRunDrawing.cs
- KnownIds.cs
- CompressStream.cs
- ISFClipboardData.cs
- WindowsRebar.cs
- OutputChannelBinder.cs
- TabRenderer.cs
- CustomAttributeBuilder.cs
- ObjectCacheHost.cs
- versioninfo.cs
- CasesDictionary.cs
- WebBrowsableAttribute.cs
- ClientUtils.cs
- XmlSerializerAssemblyAttribute.cs
- FixedBufferAttribute.cs
- SessionStateSection.cs
- AbstractExpressions.cs
- cookieexception.cs
- TCPListener.cs
- wgx_commands.cs
- PreDigestedSignedInfo.cs
- PriorityBindingExpression.cs
- RegexCaptureCollection.cs
- SerializerWriterEventHandlers.cs
- HttpSessionStateBase.cs
- NavigatorOutput.cs
- RootCodeDomSerializer.cs
- OutputCacheProfileCollection.cs
- PathGeometry.cs
- BehaviorDragDropEventArgs.cs
- _ScatterGatherBuffers.cs
- GifBitmapDecoder.cs
- BamlLocalizationDictionary.cs
- StyleSelector.cs
- _SslStream.cs
- EdgeModeValidation.cs
- AsymmetricAlgorithm.cs
- HtmlWindowCollection.cs
- ScopedMessagePartSpecification.cs
- CryptoHandle.cs
- MessageDecoder.cs
- StructuredTypeEmitter.cs
- DynamicDataRouteHandler.cs
- DrawingAttributes.cs
- BitmapScalingModeValidation.cs
- ErrorHandler.cs
- PolyBezierSegment.cs
- EntityDataSourceState.cs
- DateTimeConverter.cs
- Types.cs
- XmlDesignerDataSourceView.cs
- securitycriticaldataformultiplegetandset.cs
- CodeDomConfigurationHandler.cs
- ConnectionManagementElementCollection.cs
- ImageEditor.cs
- ContentDisposition.cs
- _NegotiateClient.cs
- DatagridviewDisplayedBandsData.cs
- SqlCacheDependency.cs
- Grid.cs
- ClientTargetSection.cs
- HttpGetClientProtocol.cs
- SafeLibraryHandle.cs
- SchemaEntity.cs
- ServiceOperation.cs
- SoapReflector.cs
- ProfileInfo.cs
- DockingAttribute.cs
- TextParaClient.cs
- linebase.cs
- RootBuilder.cs
- ControlPersister.cs
- ApplicationTrust.cs
- Form.cs
- ForeignKeyConstraint.cs
- ITextView.cs
- SqlDependency.cs
- RealProxy.cs
- SqlDataSourceStatusEventArgs.cs
- WebPartUserCapability.cs
- HitTestParameters.cs