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
- Bidi.cs
- AudioDeviceOut.cs
- TableItemStyle.cs
- WebPartPersonalization.cs
- PaperSource.cs
- QilPatternFactory.cs
- GlyphTypeface.cs
- InputReportEventArgs.cs
- MSAAEventDispatcher.cs
- CompositeActivityMarkupSerializer.cs
- SimpleMailWebEventProvider.cs
- SqlParameterCollection.cs
- RtfToken.cs
- followingquery.cs
- RewritingProcessor.cs
- DateTimeUtil.cs
- WinInet.cs
- SqlCommandBuilder.cs
- DataGridColumnCollection.cs
- SecureStringHasher.cs
- VirtualPathData.cs
- SocketInformation.cs
- StylusButtonCollection.cs
- MultipartContentParser.cs
- ServiceRoute.cs
- SapiRecoContext.cs
- SSmlParser.cs
- ByteStream.cs
- XamlWriter.cs
- ClientTarget.cs
- SessionPageStatePersister.cs
- AxHost.cs
- TempFiles.cs
- ContentDisposition.cs
- ParsedAttributeCollection.cs
- SecurityException.cs
- TaskCanceledException.cs
- ClientProxyGenerator.cs
- PersistChildrenAttribute.cs
- DataTable.cs
- PropertyDescriptorCollection.cs
- LineServicesRun.cs
- SelfIssuedAuthRSAPKCS1SignatureDeformatter.cs
- DtrList.cs
- CookieProtection.cs
- XmlILTrace.cs
- XamlReaderHelper.cs
- CreateUserWizardStep.cs
- ArrayConverter.cs
- DataRow.cs
- ErrorCodes.cs
- RegexBoyerMoore.cs
- PeerCollaborationPermission.cs
- CultureInfo.cs
- SmiEventSink_Default.cs
- QuaternionAnimation.cs
- WSDualHttpBinding.cs
- SelfIssuedAuthRSAPKCS1SignatureFormatter.cs
- RTTypeWrapper.cs
- precedingquery.cs
- XmlCDATASection.cs
- UnknownBitmapEncoder.cs
- DESCryptoServiceProvider.cs
- TransactionChannelFaultConverter.cs
- ManagedFilter.cs
- MessageContractExporter.cs
- LinkDescriptor.cs
- CharacterString.cs
- EntityContainerRelationshipSetEnd.cs
- WSSecureConversationFeb2005.cs
- ResourceLoader.cs
- ToolStripButton.cs
- BoolLiteral.cs
- EntityDataSourceWrapperCollection.cs
- PeerNodeAddress.cs
- MultipartContentParser.cs
- WeakHashtable.cs
- LongTypeConverter.cs
- ResourcePool.cs
- NTAccount.cs
- InvalidAsynchronousStateException.cs
- Decimal.cs
- DataBindingsDialog.cs
- PolyBezierSegmentFigureLogic.cs
- DelegateBodyWriter.cs
- EncryptedKey.cs
- CompilerScope.Storage.cs
- XmlSerializerSection.cs
- ToolStripSeparator.cs
- ContentType.cs
- SessionChannels.cs
- PropertyBuilder.cs
- Geometry.cs
- PeerNameRegistration.cs
- DesignSurfaceEvent.cs
- DrawingGroup.cs
- JsonXmlDataContract.cs
- HtmlInputImage.cs
- DataBoundControlAdapter.cs
- control.ime.cs