Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / CompMod / System / Diagnostics / TraceUtils.cs / 1305376 / 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; using System.Runtime.Versioning; namespace System.Diagnostics { internal static class TraceUtils { [ResourceExposure(ResourceScope.None)] [ResourceConsumption(ResourceScope.Machine, ResourceScope.Machine)] 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 (IsOwnedTL(objectType)) throw new ConfigurationErrorsException(SR.GetString(SR.TL_InitializeData_NotSpecified)); // 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 = SecurityUtils.ConstructorInfoInvoke(ctorInfo, 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 = SecurityUtils.ConstructorInfoInvoke(ctorInfo, 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; using System.Runtime.Versioning; namespace System.Diagnostics { internal static class TraceUtils { [ResourceExposure(ResourceScope.None)] [ResourceConsumption(ResourceScope.Machine, ResourceScope.Machine)] 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 (IsOwnedTL(objectType)) throw new ConfigurationErrorsException(SR.GetString(SR.TL_InitializeData_NotSpecified)); // 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 = SecurityUtils.ConstructorInfoInvoke(ctorInfo, 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 = SecurityUtils.ConstructorInfoInvoke(ctorInfo, 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
- PasswordTextNavigator.cs
- InfoCardSymmetricAlgorithm.cs
- DataGridViewDataErrorEventArgs.cs
- ArraySortHelper.cs
- TemplateControl.cs
- RegularExpressionValidator.cs
- URI.cs
- WeakReference.cs
- StatusBarDrawItemEvent.cs
- StringInfo.cs
- FixedFlowMap.cs
- QuaternionAnimation.cs
- TextRangeProviderWrapper.cs
- DiffuseMaterial.cs
- BitmapDownload.cs
- ObjectReaderCompiler.cs
- SystemIPInterfaceProperties.cs
- DirectoryGroupQuery.cs
- ComboBox.cs
- DeferredElementTreeState.cs
- DateTimeFormatInfoScanner.cs
- SimpleWebHandlerParser.cs
- WebResourceUtil.cs
- SmtpNtlmAuthenticationModule.cs
- SR.cs
- Context.cs
- IResourceProvider.cs
- CacheDependency.cs
- SQLDouble.cs
- SqlDataSourceQuery.cs
- RegisteredDisposeScript.cs
- XmlElementList.cs
- TcpProcessProtocolHandler.cs
- SegmentTree.cs
- StateMachineWorkflowDesigner.cs
- SuppressedPackageProperties.cs
- NameValuePair.cs
- BindingObserver.cs
- ConfigurationManagerHelperFactory.cs
- Int16KeyFrameCollection.cs
- FaultPropagationQuery.cs
- DataTableNewRowEvent.cs
- TextElementCollectionHelper.cs
- DataSet.cs
- SettingsAttributeDictionary.cs
- ComPlusDiagnosticTraceRecords.cs
- WindowCollection.cs
- DockPattern.cs
- DesignerLinkAdapter.cs
- ToolStripItemTextRenderEventArgs.cs
- ResolveCriteria.cs
- CmsInterop.cs
- SecurityAlgorithmSuiteConverter.cs
- CompositeDuplexBindingElement.cs
- DesignBindingPicker.cs
- HttpRuntimeSection.cs
- PageAsyncTaskManager.cs
- CodeEntryPointMethod.cs
- ArraySortHelper.cs
- ToolStripRendererSwitcher.cs
- ConfigXmlSignificantWhitespace.cs
- ComboBoxItem.cs
- WebPartDisplayModeCancelEventArgs.cs
- ListViewInsertedEventArgs.cs
- _LocalDataStoreMgr.cs
- LinkTarget.cs
- Preprocessor.cs
- Content.cs
- XmlSchemaAll.cs
- ActivationProxy.cs
- WizardStepBase.cs
- RolePrincipal.cs
- CompilerState.cs
- HttpRuntimeSection.cs
- baseaxisquery.cs
- XmlTextWriter.cs
- SqlDataAdapter.cs
- PeerCollaboration.cs
- WebPartZoneCollection.cs
- DocumentScope.cs
- UpdatePanelControlTrigger.cs
- QueryAsyncResult.cs
- CheckBoxList.cs
- QuaternionConverter.cs
- WebHttpSecurity.cs
- RegisteredScript.cs
- OleDbSchemaGuid.cs
- SecurityTraceRecordHelper.cs
- SafeBitVector32.cs
- Menu.cs
- QueryOptionExpression.cs
- TypeLibConverter.cs
- DataBindingCollectionEditor.cs
- ListViewPagedDataSource.cs
- BamlLocalizabilityResolver.cs
- TextParagraphProperties.cs
- XamlBrushSerializer.cs
- MobileRedirect.cs
- ObjectDataSourceStatusEventArgs.cs
- DbProviderFactoriesConfigurationHandler.cs