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
- TypeListConverter.cs
- CacheDependency.cs
- RowSpanVector.cs
- GraphicsPathIterator.cs
- MemberPathMap.cs
- OracleFactory.cs
- Dump.cs
- storepermissionattribute.cs
- MsmqChannelListenerBase.cs
- storepermissionattribute.cs
- CodeSnippetStatement.cs
- InputMethodStateChangeEventArgs.cs
- ThreadInterruptedException.cs
- CommonDialog.cs
- PlanCompiler.cs
- UpWmlPageAdapter.cs
- NTAccount.cs
- XsdDuration.cs
- CategoryState.cs
- XmlSchemaSet.cs
- TemplateInstanceAttribute.cs
- LinqDataSourceView.cs
- UriExt.cs
- Wildcard.cs
- InitializerFacet.cs
- CellRelation.cs
- CompModHelpers.cs
- UrlPropertyAttribute.cs
- TextAnchor.cs
- SqlDependencyListener.cs
- SqlTriggerContext.cs
- DelegateHelpers.cs
- TextServicesHost.cs
- ReachSerializationUtils.cs
- SymLanguageVendor.cs
- DrawToolTipEventArgs.cs
- ForEachDesigner.xaml.cs
- ConstructorNeedsTagAttribute.cs
- DiagnosticsConfiguration.cs
- PropertyCondition.cs
- OdbcReferenceCollection.cs
- ReadOnlyObservableCollection.cs
- CompareInfo.cs
- ToolStripManager.cs
- XamlClipboardData.cs
- NegatedCellConstant.cs
- SecurityElement.cs
- LaxModeSecurityHeaderElementInferenceEngine.cs
- ProcessThread.cs
- DeviceSpecificDialogCachedState.cs
- OptimalTextSource.cs
- WebServiceBindingAttribute.cs
- AnnotationResourceChangedEventArgs.cs
- StreamSecurityUpgradeAcceptor.cs
- PropertyValueChangedEvent.cs
- FloatUtil.cs
- RegexCaptureCollection.cs
- HttpApplicationFactory.cs
- WindowsRichEditRange.cs
- CancellationTokenRegistration.cs
- AsyncDataRequest.cs
- AnimationException.cs
- XamlReaderHelper.cs
- SchemaNotation.cs
- Timer.cs
- DashStyles.cs
- EntityDataSourceQueryBuilder.cs
- clipboard.cs
- ExecutionEngineException.cs
- WebPartUserCapability.cs
- CollectionChangeEventArgs.cs
- DesignerTransactionCloseEvent.cs
- LocalizationComments.cs
- CompModSwitches.cs
- SqlEnums.cs
- InputQueue.cs
- SymbolPair.cs
- OdbcParameter.cs
- RegistryPermission.cs
- SafeCryptHandles.cs
- IUnknownConstantAttribute.cs
- PolicyImporterElementCollection.cs
- InternalControlCollection.cs
- MarkupWriter.cs
- HtmlInputRadioButton.cs
- SqlTopReducer.cs
- ElapsedEventArgs.cs
- TiffBitmapDecoder.cs
- NestedContainer.cs
- TextViewSelectionProcessor.cs
- DataReceivedEventArgs.cs
- ToolStripItemImageRenderEventArgs.cs
- FlatButtonAppearance.cs
- NamespaceCollection.cs
- LinkedResourceCollection.cs
- TextContainerHelper.cs
- Clipboard.cs
- DbConnectionStringBuilder.cs
- CompositionCommandSet.cs
- XmlDictionaryWriter.cs