Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / 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
- TextRunProperties.cs
- ToolStripItemEventArgs.cs
- DSACryptoServiceProvider.cs
- OdbcEnvironment.cs
- AxisAngleRotation3D.cs
- ToolboxItemAttribute.cs
- ConfigXmlDocument.cs
- ModelFunction.cs
- InkCollectionBehavior.cs
- ListBox.cs
- WindowsStatusBar.cs
- Attachment.cs
- NetTcpSection.cs
- WebServiceData.cs
- DocumentOrderQuery.cs
- Command.cs
- METAHEADER.cs
- SecurityUtils.cs
- LogWriteRestartAreaAsyncResult.cs
- PropertyIDSet.cs
- ParserContext.cs
- MoveSizeWinEventHandler.cs
- MessageUtil.cs
- RootBrowserWindowProxy.cs
- unsafeIndexingFilterStream.cs
- XmlAnyAttributeAttribute.cs
- CacheMode.cs
- SQLByteStorage.cs
- ObjectStateEntryOriginalDbUpdatableDataRecord.cs
- NetSectionGroup.cs
- WorkItem.cs
- InplaceBitmapMetadataWriter.cs
- WebPartTransformer.cs
- OdbcException.cs
- MemberAssignmentAnalysis.cs
- CompoundFileReference.cs
- StylusPointPropertyInfo.cs
- ControlBuilder.cs
- DeviceContext2.cs
- PrinterSettings.cs
- SoapCodeExporter.cs
- LocalBuilder.cs
- QueryContinueDragEvent.cs
- RemotingConfigParser.cs
- DbCommandDefinition.cs
- Errors.cs
- FormatException.cs
- RectValueSerializer.cs
- InstancePersistenceException.cs
- FileRecordSequenceHelper.cs
- UriSectionData.cs
- DbParameterHelper.cs
- ACE.cs
- SelectionPattern.cs
- COM2IPerPropertyBrowsingHandler.cs
- _MultipleConnectAsync.cs
- SqlNotificationRequest.cs
- DesignerActionUIStateChangeEventArgs.cs
- ClientTargetCollection.cs
- ScalarOps.cs
- DataGridViewLinkColumn.cs
- XmlCompatibilityReader.cs
- DropDownList.cs
- AdapterUtil.cs
- ListViewItemSelectionChangedEvent.cs
- GeneralTransform.cs
- ServiceDescriptionData.cs
- StringValueConverter.cs
- XmlDesigner.cs
- NegotiateStream.cs
- SchemaNamespaceManager.cs
- CmsUtils.cs
- UserControlParser.cs
- TableProviderWrapper.cs
- ExtendedPropertyDescriptor.cs
- InputScope.cs
- TransformerConfigurationWizardBase.cs
- SettingsBindableAttribute.cs
- EntityDataSourceDataSelection.cs
- ISSmlParser.cs
- DataGridViewRowCollection.cs
- HttpCacheParams.cs
- QilStrConcatenator.cs
- DbLambda.cs
- PermissionRequestEvidence.cs
- _ConnectStream.cs
- TextParagraphProperties.cs
- FormViewModeEventArgs.cs
- PrivateUnsafeNativeCompoundFileMethods.cs
- StdValidatorsAndConverters.cs
- Converter.cs
- PersonalizationStateInfoCollection.cs
- ListViewItemMouseHoverEvent.cs
- GroupItem.cs
- RequestDescription.cs
- DataGridViewColumn.cs
- PolicyStatement.cs
- ResourcesBuildProvider.cs
- ObjectDataSourceMethodEventArgs.cs
- DataGridViewCellParsingEventArgs.cs