Code:
                         / 4.0 / 4.0 / untmp / 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
                        
                        
                         
                    Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- Transaction.cs
- SmtpCommands.cs
- ColorAnimationUsingKeyFrames.cs
- FlowLayoutPanel.cs
- HandlerFactoryCache.cs
- ValidateNames.cs
- PreparingEnlistment.cs
- GlobalItem.cs
- DataGridViewColumn.cs
- SystemInfo.cs
- Console.cs
- SqlMethods.cs
- ValueOfAction.cs
- Rotation3DAnimationUsingKeyFrames.cs
- SqlDependency.cs
- SelectionManager.cs
- SystemPens.cs
- AssemblyFilter.cs
- ReadOnlyCollection.cs
- QuotedStringFormatReader.cs
- InputScopeManager.cs
- DesigntimeLicenseContext.cs
- Listener.cs
- CookieProtection.cs
- MissingSatelliteAssemblyException.cs
- DbSetClause.cs
- ClientTargetSection.cs
- hresults.cs
- ComponentEditorPage.cs
- Inline.cs
- DataGridViewComboBoxEditingControl.cs
- OdbcConnectionStringbuilder.cs
- FixedFindEngine.cs
- BindingValueChangedEventArgs.cs
- BuildProviderCollection.cs
- HuffCodec.cs
- XmlElementCollection.cs
- ColumnCollection.cs
- ValueChangedEventManager.cs
- HtmlInputRadioButton.cs
- UserNamePasswordValidator.cs
- TdsParserSessionPool.cs
- StateFinalizationDesigner.cs
- SizeAnimationUsingKeyFrames.cs
- loginstatus.cs
- ProfileService.cs
- IPAddressCollection.cs
- ItemChangedEventArgs.cs
- NeutralResourcesLanguageAttribute.cs
- AlternateViewCollection.cs
- CompiledXpathExpr.cs
- AutomationProperties.cs
- CodeExpressionCollection.cs
- ConversionHelper.cs
- OdbcParameter.cs
- RTLAwareMessageBox.cs
- CustomAttributeFormatException.cs
- BuildProvidersCompiler.cs
- RotateTransform3D.cs
- SystemIPInterfaceProperties.cs
- StreamResourceInfo.cs
- TemplateBindingExpression.cs
- StyleCollectionEditor.cs
- OrCondition.cs
- XmlSchemaValidator.cs
- FlowLayoutPanelDesigner.cs
- ThreadStaticAttribute.cs
- TableLayoutPanelCellPosition.cs
- AuthStoreRoleProvider.cs
- PropertyGrid.cs
- ipaddressinformationcollection.cs
- sortedlist.cs
- EncoderFallback.cs
- DetailsViewInsertedEventArgs.cs
- BitVector32.cs
- DependencyObjectType.cs
- StylusPointPropertyUnit.cs
- Debugger.cs
- CommandCollectionEditor.cs
- ContentTextAutomationPeer.cs
- TemplateBindingExpressionConverter.cs
- Camera.cs
- AsymmetricSignatureDeformatter.cs
- MsmqBindingFilter.cs
- Operand.cs
- RightsDocument.cs
- xamlnodes.cs
- Localizer.cs
- DesignerMetadata.cs
- ExpandedWrapper.cs
- Certificate.cs
- IsolationInterop.cs
- XslTransformFileEditor.cs
- Trace.cs
- FontUnit.cs
- MarkerProperties.cs
- DiscoveryRequestHandler.cs
- Size3D.cs
- ApplicationFileParser.cs
- DiagnosticTraceRecords.cs