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
- EmulateRecognizeCompletedEventArgs.cs
- DefaultValueAttribute.cs
- CultureInfoConverter.cs
- AsymmetricSignatureDeformatter.cs
- ValidationEventArgs.cs
- BaseHashHelper.cs
- Command.cs
- AppModelKnownContentFactory.cs
- ValidationErrorCollection.cs
- RtType.cs
- IdentityModelStringsVersion1.cs
- ZipIOFileItemStream.cs
- ImplicitInputBrush.cs
- Pts.cs
- WebUtil.cs
- XamlToRtfParser.cs
- TopClause.cs
- Drawing.cs
- ContentDisposition.cs
- GACMembershipCondition.cs
- XmlDataImplementation.cs
- ManifestResourceInfo.cs
- WebPartConnectionsCancelVerb.cs
- DynamicContractTypeBuilder.cs
- StrokeSerializer.cs
- CollectionChangeEventArgs.cs
- DetailsViewUpdatedEventArgs.cs
- BrowserCapabilitiesCodeGenerator.cs
- DataRelationPropertyDescriptor.cs
- ConfigurationSettings.cs
- HtmlTableRowCollection.cs
- SystemIcmpV4Statistics.cs
- DropDownList.cs
- XmlCompatibilityReader.cs
- CorrelationManager.cs
- BinaryObjectWriter.cs
- ByteConverter.cs
- TCPListener.cs
- ClonableStack.cs
- ShapingEngine.cs
- DataGridViewAccessibleObject.cs
- HttpWebRequest.cs
- EncodingDataItem.cs
- NonParentingControl.cs
- HTMLTextWriter.cs
- Message.cs
- ActivityCodeDomSerializationManager.cs
- GestureRecognizer.cs
- TextStore.cs
- UriParserTemplates.cs
- VerticalAlignConverter.cs
- HashCodeCombiner.cs
- DeferrableContent.cs
- SafeNativeMethodsOther.cs
- AssociationProvider.cs
- FormViewDeletedEventArgs.cs
- SqlParameter.cs
- CompositeActivityValidator.cs
- IPHostEntry.cs
- UpDownEvent.cs
- DrawTreeNodeEventArgs.cs
- OrderByLifter.cs
- Brush.cs
- ProgressBarAutomationPeer.cs
- XmlObjectSerializer.cs
- EntityParameterCollection.cs
- FullTextLine.cs
- Renderer.cs
- X509Utils.cs
- RenderingEventArgs.cs
- Quaternion.cs
- BufferBuilder.cs
- StyleBamlTreeBuilder.cs
- TargetInvocationException.cs
- AsnEncodedData.cs
- TrustSection.cs
- WindowsClaimSet.cs
- TaskFormBase.cs
- DefaultDiscoveryServiceExtension.cs
- EventSinkActivityDesigner.cs
- ServiceEndpointCollection.cs
- ToolStripLocationCancelEventArgs.cs
- WebRequestModulesSection.cs
- ControlCollection.cs
- DbExpressionVisitor.cs
- lengthconverter.cs
- TextRangeProviderWrapper.cs
- X509Utils.cs
- RoleManagerSection.cs
- OdbcConnection.cs
- GroupedContextMenuStrip.cs
- MatchAllMessageFilter.cs
- Rect3D.cs
- XmlWellformedWriterHelpers.cs
- DocumentPage.cs
- IChannel.cs
- XmlCollation.cs
- ViewSimplifier.cs
- _UriSyntax.cs
- ContentPresenter.cs