Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / 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
- BitmapScalingModeValidation.cs
- HttpRequest.cs
- ObjectNotFoundException.cs
- ExeContext.cs
- _KerberosClient.cs
- AutoResetEvent.cs
- ObjectTag.cs
- WmlTextViewAdapter.cs
- ViewBox.cs
- CompositeFontParser.cs
- XamlSerializerUtil.cs
- Image.cs
- PenThread.cs
- PopOutPanel.cs
- DefinitionUpdate.cs
- EditableRegion.cs
- EntityParameter.cs
- RequestQueryProcessor.cs
- XmlBinaryReader.cs
- MailMessageEventArgs.cs
- InfoCardRSAOAEPKeyExchangeDeformatter.cs
- ToolStripOverflow.cs
- PagesChangedEventArgs.cs
- TableAdapterManagerNameHandler.cs
- Publisher.cs
- SignatureHelper.cs
- followingquery.cs
- OleDbFactory.cs
- NetMsmqSecurityElement.cs
- ApplicationDirectory.cs
- LinkDescriptor.cs
- XmlSchemaSimpleTypeList.cs
- XmlSchemaAnnotation.cs
- DBConnectionString.cs
- Section.cs
- CapabilitiesAssignment.cs
- Transform3D.cs
- RuleSetCollection.cs
- ObjectNotFoundException.cs
- ComponentChangedEvent.cs
- FeedUtils.cs
- SupportsEventValidationAttribute.cs
- TextEditorSelection.cs
- HotSpot.cs
- _Connection.cs
- DesignConnection.cs
- Cursor.cs
- FixedPage.cs
- WebPartMinimizeVerb.cs
- Binding.cs
- CaretElement.cs
- XamlSerializerUtil.cs
- DiagnosticsElement.cs
- CapabilitiesPattern.cs
- HtmlInputSubmit.cs
- FileDetails.cs
- UnknownWrapper.cs
- DataRowComparer.cs
- SQLInt64Storage.cs
- Polyline.cs
- DuplicateWaitObjectException.cs
- FileRecordSequenceHelper.cs
- SqlParameter.cs
- TreeView.cs
- LassoHelper.cs
- ImpersonationContext.cs
- RoutedEvent.cs
- SoapObjectInfo.cs
- DebugControllerThread.cs
- AutomationProperty.cs
- TableHeaderCell.cs
- WebPartVerbCollection.cs
- DataGridBoundColumn.cs
- TableItemStyle.cs
- DetailsViewDeletedEventArgs.cs
- BufferedMessageWriter.cs
- NameNode.cs
- StringAnimationUsingKeyFrames.cs
- ApplicationHost.cs
- BaseProcessor.cs
- ProcessModule.cs
- ListParaClient.cs
- ToolTip.cs
- TabletDevice.cs
- CellPartitioner.cs
- CompilerTypeWithParams.cs
- PagesSection.cs
- ImageButton.cs
- WindowsListViewItem.cs
- DataGridViewCheckBoxCell.cs
- CfgRule.cs
- CompilerCollection.cs
- SqlOuterApplyReducer.cs
- DisplayMemberTemplateSelector.cs
- PeerOutputChannel.cs
- XmlKeywords.cs
- brushes.cs
- AssemblyContextControlItem.cs
- PageThemeCodeDomTreeGenerator.cs
- TextLine.cs