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
- ScrollBarRenderer.cs
- HierarchicalDataSourceControl.cs
- SizeConverter.cs
- FileSecurity.cs
- AuthenticationModuleElementCollection.cs
- HttpListenerTimeoutManager.cs
- NativeMethods.cs
- HtmlTableCellCollection.cs
- BaseCollection.cs
- DecimalConstantAttribute.cs
- indexingfiltermarshaler.cs
- SamlSecurityTokenAuthenticator.cs
- UITypeEditors.cs
- _NegoState.cs
- Rect3D.cs
- XmlSchemaGroup.cs
- TCPListener.cs
- ListBindingHelper.cs
- QuotedStringWriteStateInfo.cs
- DesignerDataColumn.cs
- MouseGesture.cs
- HitTestFilterBehavior.cs
- DbConnectionStringCommon.cs
- ConnectionPointCookie.cs
- SvcFileManager.cs
- HideDisabledControlAdapter.cs
- CompilationUtil.cs
- AlphaSortedEnumConverter.cs
- MILUtilities.cs
- ListViewCancelEventArgs.cs
- relpropertyhelper.cs
- SecurityUtils.cs
- XmlEventCache.cs
- TypedColumnHandler.cs
- FixedNode.cs
- QueryStringConverter.cs
- DesignTimeXamlWriter.cs
- XmlnsCache.cs
- Literal.cs
- WebPartMovingEventArgs.cs
- IImplicitResourceProvider.cs
- HierarchicalDataTemplate.cs
- CodeTypeMember.cs
- DataColumnChangeEvent.cs
- ConfigurationException.cs
- EntityParameterCollection.cs
- Zone.cs
- WinCategoryAttribute.cs
- X509SecurityTokenAuthenticator.cs
- StorageInfo.cs
- ElementNotEnabledException.cs
- GlobalAllocSafeHandle.cs
- DragDropHelper.cs
- EntityViewGenerationAttribute.cs
- XmlTextAttribute.cs
- XmlSchemaComplexContent.cs
- SimpleApplicationHost.cs
- PersonalizationState.cs
- AssemblyAssociatedContentFileAttribute.cs
- ConditionCollection.cs
- CodeChecksumPragma.cs
- TimelineGroup.cs
- AnonymousIdentificationModule.cs
- PointAnimationUsingPath.cs
- Environment.cs
- Literal.cs
- StrongName.cs
- PageAsyncTask.cs
- LocalizableResourceBuilder.cs
- ObjectNotFoundException.cs
- DataPager.cs
- ScrollItemPattern.cs
- DataServiceResponse.cs
- ErrorsHelper.cs
- LogArchiveSnapshot.cs
- WinFormsSecurity.cs
- DataTable.cs
- MenuEventArgs.cs
- CodeNamespaceImport.cs
- CodeGeneratorOptions.cs
- PcmConverter.cs
- KeyedCollection.cs
- GregorianCalendar.cs
- ReliableChannelListener.cs
- EncoderParameters.cs
- FontFamilyValueSerializer.cs
- InternalPolicyElement.cs
- PropertyPushdownHelper.cs
- NativeWindow.cs
- ToolStripPanelDesigner.cs
- WebPartConnectVerb.cs
- FormatterConverter.cs
- SchemaInfo.cs
- HostVisual.cs
- VectorCollection.cs
- CompiledWorkflowDefinitionContext.cs
- TableLayoutCellPaintEventArgs.cs
- RenamedEventArgs.cs
- X509ClientCertificateAuthentication.cs
- Simplifier.cs