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
- MailMessage.cs
- ConfigurationLocationCollection.cs
- EntityDataSourceDesigner.cs
- ChameleonKey.cs
- Variable.cs
- PanelDesigner.cs
- Table.cs
- NTAccount.cs
- GlobalizationSection.cs
- InternalMappingException.cs
- LocalIdCollection.cs
- SizeIndependentAnimationStorage.cs
- IgnoreFileBuildProvider.cs
- XmlSchemaValidator.cs
- ObjectHandle.cs
- CultureSpecificStringDictionary.cs
- HWStack.cs
- ContractValidationHelper.cs
- tibetanshape.cs
- ConfigsHelper.cs
- BindingContext.cs
- XmlEncodedRawTextWriter.cs
- ItemChangedEventArgs.cs
- DataGridViewCheckBoxCell.cs
- HtmlInputControl.cs
- PageContentAsyncResult.cs
- OleDbCommandBuilder.cs
- WebReferencesBuildProvider.cs
- PageThemeCodeDomTreeGenerator.cs
- UserControlFileEditor.cs
- X509Chain.cs
- PageTheme.cs
- EntityDesignerDataSourceView.cs
- HttpRuntime.cs
- DataTablePropertyDescriptor.cs
- UIElementParagraph.cs
- CustomWebEventKey.cs
- NavigationPropertyEmitter.cs
- XpsFilter.cs
- ApplicationGesture.cs
- Point3DConverter.cs
- LineGeometry.cs
- GeometryGroup.cs
- HttpListener.cs
- SrgsToken.cs
- HwndProxyElementProvider.cs
- Timer.cs
- ProviderConnectionPoint.cs
- TextDecorationCollection.cs
- Table.cs
- ObjectManager.cs
- XmlEnumAttribute.cs
- CipherData.cs
- DesignerSerializationOptionsAttribute.cs
- SecUtil.cs
- CompositeCollection.cs
- ProjectedSlot.cs
- ComponentResourceKeyConverter.cs
- Single.cs
- CodePageEncoding.cs
- Point.cs
- _LocalDataStore.cs
- WeakRefEnumerator.cs
- RoutedEventHandlerInfo.cs
- Trigger.cs
- DataGridCell.cs
- SqlException.cs
- Predicate.cs
- TypeUsageBuilder.cs
- ImageBrush.cs
- PropertyBuilder.cs
- DataTransferEventArgs.cs
- TextBoxView.cs
- ReadWriteObjectLock.cs
- Size.cs
- Profiler.cs
- ModuleElement.cs
- XmlSerializableServices.cs
- Facet.cs
- ListParagraph.cs
- SaveFileDialog.cs
- XmlSchemaInfo.cs
- RoleService.cs
- CalculatedColumn.cs
- BinaryFormatter.cs
- EditorBrowsableAttribute.cs
- Interlocked.cs
- BamlTreeMap.cs
- ModulesEntry.cs
- GifBitmapEncoder.cs
- UnsafeCollabNativeMethods.cs
- RevocationPoint.cs
- Margins.cs
- SelectionRange.cs
- BufferBuilder.cs
- DefaultAssemblyResolver.cs
- ThreadInterruptedException.cs
- AssemblyNameProxy.cs
- log.cs
- FacetChecker.cs