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
- IndependentAnimationStorage.cs
- SQLMoneyStorage.cs
- XmlILStorageConverter.cs
- SQLDouble.cs
- ParamArrayAttribute.cs
- TableLayoutPanel.cs
- CreateUserErrorEventArgs.cs
- DataTemplate.cs
- ADMembershipUser.cs
- VectorCollectionConverter.cs
- PropertyGridView.cs
- TypeUtil.cs
- SearchForVirtualItemEventArgs.cs
- X509CertificateClaimSet.cs
- SynchronizedInputAdaptor.cs
- ServiceBusyException.cs
- WmlMobileTextWriter.cs
- NodeInfo.cs
- SQlBooleanStorage.cs
- ManagedWndProcTracker.cs
- PointAnimation.cs
- _BaseOverlappedAsyncResult.cs
- SystemIcmpV6Statistics.cs
- TraceListeners.cs
- Int64.cs
- TimeSpanMinutesOrInfiniteConverter.cs
- ContentType.cs
- ProtocolsConfigurationHandler.cs
- MessageBox.cs
- RoleBoolean.cs
- InputProcessorProfiles.cs
- WebPartConnectionsDisconnectVerb.cs
- OrthographicCamera.cs
- SimpleRecyclingCache.cs
- UserNameSecurityTokenProvider.cs
- OleDbConnection.cs
- FeatureAttribute.cs
- SessionEndedEventArgs.cs
- TemporaryBitmapFile.cs
- HTMLTagNameToTypeMapper.cs
- MessageEncodingBindingElement.cs
- SqlRowUpdatedEvent.cs
- HttpConfigurationSystem.cs
- Axis.cs
- SymbolTable.cs
- XmlReflectionMember.cs
- VirtualDirectoryMapping.cs
- WorkflowViewStateService.cs
- BaseServiceProvider.cs
- ConfigPathUtility.cs
- GeneralTransformGroup.cs
- NonVisualControlAttribute.cs
- SubMenuStyle.cs
- SizeAnimation.cs
- QilReference.cs
- MetadataWorkspace.cs
- printdlgexmarshaler.cs
- XmlSerializerVersionAttribute.cs
- IndicShape.cs
- GridViewColumnHeaderAutomationPeer.cs
- CompressEmulationStream.cs
- DataGridViewCellFormattingEventArgs.cs
- BinaryMethodMessage.cs
- StrongNamePublicKeyBlob.cs
- ThreadLocal.cs
- DbDeleteCommandTree.cs
- SmtpReplyReaderFactory.cs
- LineServicesRun.cs
- FileEnumerator.cs
- ResolveNextArgumentWorkItem.cs
- DataGridTableCollection.cs
- SqlComparer.cs
- HttpRuntime.cs
- QueryStringParameter.cs
- FixedPageAutomationPeer.cs
- CurrentTimeZone.cs
- Serializer.cs
- SortKey.cs
- ClientSession.cs
- ConstraintCollection.cs
- HashLookup.cs
- DataGridViewControlCollection.cs
- ScrollBar.cs
- BuildManagerHost.cs
- SafeNativeMethods.cs
- RenderCapability.cs
- SqlReorderer.cs
- ClientSettingsProvider.cs
- NumericUpDownAccelerationCollection.cs
- UniqueConstraint.cs
- InfoCardRSACryptoProvider.cs
- ButtonRenderer.cs
- EmptyCollection.cs
- ToolStripOverflow.cs
- MultiBinding.cs
- BaseWebProxyFinder.cs
- SecureConversationServiceCredential.cs
- panel.cs
- NetworkInformationException.cs
- LogLogRecord.cs