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
- StateRuntime.cs
- TcpClientCredentialType.cs
- SoapAttributeOverrides.cs
- SqlConnectionStringBuilder.cs
- PersonalizationStateQuery.cs
- CheckBoxBaseAdapter.cs
- BamlVersionHeader.cs
- DataMemberAttribute.cs
- PagedDataSource.cs
- CompilationUnit.cs
- Vector3DAnimationBase.cs
- StackBuilderSink.cs
- ChildTable.cs
- CollectionBase.cs
- TextBox.cs
- AppDomainUnloadedException.cs
- PageThemeCodeDomTreeGenerator.cs
- TextPointer.cs
- SystemDropShadowChrome.cs
- AsyncParams.cs
- ParameterToken.cs
- XmlSignificantWhitespace.cs
- DataListGeneralPage.cs
- ZipIOCentralDirectoryDigitalSignature.cs
- ConfigurationManagerInternalFactory.cs
- QuaternionIndependentAnimationStorage.cs
- ResourcesGenerator.cs
- CodeGeneratorOptions.cs
- CustomSignedXml.cs
- XmlStringTable.cs
- MarshalDirectiveException.cs
- BufferedOutputStream.cs
- Light.cs
- BrowserInteropHelper.cs
- Block.cs
- TreeNodeMouseHoverEvent.cs
- SerializationFieldInfo.cs
- WinInetCache.cs
- StrokeDescriptor.cs
- CustomLineCap.cs
- SiteMapNode.cs
- Quack.cs
- RelationshipEndCollection.cs
- XPathNodeIterator.cs
- ParameterDataSourceExpression.cs
- TextSpan.cs
- HostingEnvironmentException.cs
- PassportAuthenticationModule.cs
- SiteMapNodeItemEventArgs.cs
- SplitterCancelEvent.cs
- SqlAggregateChecker.cs
- ClassicBorderDecorator.cs
- XDRSchema.cs
- TypedElement.cs
- DataSourceHelper.cs
- Query.cs
- ASCIIEncoding.cs
- HtmlButton.cs
- XamlStream.cs
- FlowDocumentPageViewerAutomationPeer.cs
- OleDbReferenceCollection.cs
- XmlUnspecifiedAttribute.cs
- BamlStream.cs
- ValidationEventArgs.cs
- AbstractDataSvcMapFileLoader.cs
- CreateUserErrorEventArgs.cs
- CodeArrayCreateExpression.cs
- followingquery.cs
- UserControlAutomationPeer.cs
- HScrollProperties.cs
- StateBag.cs
- ErrorRuntimeConfig.cs
- ResXFileRef.cs
- ListViewGroupConverter.cs
- HebrewNumber.cs
- GeneralTransform.cs
- SspiSafeHandles.cs
- TemplateComponentConnector.cs
- PlaceHolder.cs
- TemplateEditingVerb.cs
- xmlfixedPageInfo.cs
- DesignTimeParseData.cs
- TimeSpanMinutesOrInfiniteConverter.cs
- InitializeCorrelation.cs
- CodeDelegateCreateExpression.cs
- DurableErrorHandler.cs
- AudioStateChangedEventArgs.cs
- SqlVisitor.cs
- XmlSortKey.cs
- FileInfo.cs
- TypeReference.cs
- LingerOption.cs
- InstanceOwner.cs
- XamlSerializerUtil.cs
- HttpListenerRequest.cs
- EntityClassGenerator.cs
- File.cs
- WebPartZoneAutoFormat.cs
- DataGridViewBand.cs
- TraceListener.cs