Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / 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
- RawMouseInputReport.cs
- ipaddressinformationcollection.cs
- WebColorConverter.cs
- ControlIdConverter.cs
- Bitmap.cs
- VariableQuery.cs
- IsolatedStorageFilePermission.cs
- LambdaCompiler.cs
- basemetadatamappingvisitor.cs
- IERequestCache.cs
- Rect3DValueSerializer.cs
- PeerTransportSecuritySettings.cs
- UrlPath.cs
- ProfilePropertyNameValidator.cs
- InputLanguageProfileNotifySink.cs
- unitconverter.cs
- FixedFlowMap.cs
- ProcessModule.cs
- latinshape.cs
- RewritingSimplifier.cs
- RegistryKey.cs
- xmlfixedPageInfo.cs
- DomainLiteralReader.cs
- ManualWorkflowSchedulerService.cs
- PeerApplication.cs
- TabControl.cs
- OptimizerPatterns.cs
- StringExpressionSet.cs
- CommandID.cs
- SystemPens.cs
- StatusBarDesigner.cs
- WebPartTracker.cs
- FileLogRecordHeader.cs
- ListBoxAutomationPeer.cs
- WebPartEventArgs.cs
- UniformGrid.cs
- AlgoModule.cs
- CustomAttributeFormatException.cs
- DiffuseMaterial.cs
- CompiledXpathExpr.cs
- ServiceBuildProvider.cs
- MemberDescriptor.cs
- ShapeTypeface.cs
- AssemblyHash.cs
- InstanceOwnerQueryResult.cs
- NTAccount.cs
- InputEventArgs.cs
- ResXDataNode.cs
- ObfuscateAssemblyAttribute.cs
- DbParameterCollectionHelper.cs
- Button.cs
- BackStopAuthenticationModule.cs
- InternalConfigSettingsFactory.cs
- PrimitiveList.cs
- HtmlControl.cs
- CultureMapper.cs
- XmlSchemaSequence.cs
- WindowsGraphicsCacheManager.cs
- DocumentPaginator.cs
- WorkflowInstanceUnhandledExceptionRecord.cs
- ListBindingConverter.cs
- SessionEndedEventArgs.cs
- RightsManagementUser.cs
- ReflectionPermission.cs
- DataGridViewColumnEventArgs.cs
- ResourcesChangeInfo.cs
- SplitterEvent.cs
- DataException.cs
- ISAPIRuntime.cs
- SamlAction.cs
- DataTableMappingCollection.cs
- ReadContentAsBinaryHelper.cs
- XmlSerializerAssemblyAttribute.cs
- KeySplineConverter.cs
- ParallelEnumerable.cs
- SoapAttributeAttribute.cs
- DetailsViewRow.cs
- GroupBox.cs
- StateWorkerRequest.cs
- PeerNearMe.cs
- OracleConnectionFactory.cs
- DataGridViewColumnConverter.cs
- GetRecipientRequest.cs
- DoWorkEventArgs.cs
- ExecutionContext.cs
- WeakRefEnumerator.cs
- BindingExpressionBase.cs
- ToolBar.cs
- EditCommandColumn.cs
- StreamUpdate.cs
- DataServiceExpressionVisitor.cs
- AffineTransform3D.cs
- ClientUtils.cs
- ControlCachePolicy.cs
- ValuePattern.cs
- ManagementException.cs
- RegistryDataKey.cs
- InputBindingCollection.cs
- CredentialCache.cs
- BaseUriHelper.cs