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
- DocumentXPathNavigator.cs
- SamlConditions.cs
- XmlRawWriter.cs
- sortedlist.cs
- TableRow.cs
- RenderData.cs
- MouseEvent.cs
- ScriptDescriptor.cs
- QilReplaceVisitor.cs
- SqlUDTStorage.cs
- BamlTreeMap.cs
- CommunicationObject.cs
- DSGeneratorProblem.cs
- DateRangeEvent.cs
- MessagePartProtectionMode.cs
- FtpWebResponse.cs
- CalendarSelectionChangedEventArgs.cs
- SQLInt16.cs
- InputLanguage.cs
- SecureStringHasher.cs
- LogicalExpr.cs
- KnownBoxes.cs
- NumberSubstitution.cs
- ClientBuildManager.cs
- Slider.cs
- XmlDataSource.cs
- PerfCounterSection.cs
- SharedPerformanceCounter.cs
- SpotLight.cs
- Converter.cs
- FormatSettings.cs
- TypeBuilder.cs
- CollectionChangeEventArgs.cs
- FormsAuthenticationEventArgs.cs
- ZoneIdentityPermission.cs
- RegisteredExpandoAttribute.cs
- OleDbParameterCollection.cs
- CqlParserHelpers.cs
- AutomationElementCollection.cs
- ObjectStateEntryBaseUpdatableDataRecord.cs
- SqlBulkCopyColumnMappingCollection.cs
- FileUpload.cs
- TypeInfo.cs
- HelpPage.cs
- SoapObjectInfo.cs
- DrawingContext.cs
- ScrollItemPattern.cs
- AppDomainFactory.cs
- CfgArc.cs
- webclient.cs
- CodeNamespace.cs
- CompositeTypefaceMetrics.cs
- NativeMethods.cs
- ProtocolViolationException.cs
- LogEntryUtils.cs
- ProgramPublisher.cs
- AsyncPostBackErrorEventArgs.cs
- SrgsRulesCollection.cs
- SecurityNegotiationException.cs
- BaseUriHelper.cs
- EtwProvider.cs
- StatusBar.cs
- ColumnCollectionEditor.cs
- ExtentJoinTreeNode.cs
- SrgsRulesCollection.cs
- ArrangedElementCollection.cs
- RankException.cs
- Attachment.cs
- PanningMessageFilter.cs
- TypeReference.cs
- TypeConstant.cs
- JoinElimination.cs
- DynamicControl.cs
- FunctionOverloadResolver.cs
- HttpRequestWrapper.cs
- DBConnection.cs
- OrderPreservingMergeHelper.cs
- SynchronizationLockException.cs
- ObjectTag.cs
- SharedConnectionListener.cs
- OuterGlowBitmapEffect.cs
- ListItemsPage.cs
- InputProcessorProfilesLoader.cs
- AttributeCollection.cs
- XamlReaderConstants.cs
- TextDpi.cs
- ControlCachePolicy.cs
- SimpleTypeResolver.cs
- DataRowCollection.cs
- CompositeDataBoundControl.cs
- ValidationPropertyAttribute.cs
- InternalConfirm.cs
- SHA512.cs
- ExpressionConverter.cs
- RealizationContext.cs
- ControlDesignerState.cs
- PackageFilter.cs
- ManagementInstaller.cs
- ControlCachePolicy.cs
- HttpCachePolicyWrapper.cs