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
- ApplicationSecurityInfo.cs
- Membership.cs
- Page.cs
- MediaTimeline.cs
- PtsContext.cs
- SiteMapSection.cs
- Sentence.cs
- ScriptComponentDescriptor.cs
- SymmetricCryptoHandle.cs
- CodeSubDirectoriesCollection.cs
- ItemsChangedEventArgs.cs
- TextRunTypographyProperties.cs
- DriveNotFoundException.cs
- DisposableCollectionWrapper.cs
- KeyGesture.cs
- RefreshPropertiesAttribute.cs
- MissingManifestResourceException.cs
- PolyBezierSegment.cs
- DirectionalLight.cs
- Item.cs
- CustomValidator.cs
- DataGridViewTextBoxCell.cs
- Scheduler.cs
- WpfMemberInvoker.cs
- DateTimeOffsetConverter.cs
- TimeManager.cs
- SchemaTypeEmitter.cs
- DbCommandDefinition.cs
- SQLBytesStorage.cs
- SkinBuilder.cs
- EventProviderClassic.cs
- CodeDefaultValueExpression.cs
- AlternateViewCollection.cs
- CryptoApi.cs
- HTMLTagNameToTypeMapper.cs
- EmissiveMaterial.cs
- XmlSecureResolver.cs
- loginstatus.cs
- ConnectionManagementSection.cs
- StreamInfo.cs
- NavigationWindowAutomationPeer.cs
- WebProxyScriptElement.cs
- BezierSegment.cs
- TempEnvironment.cs
- RectKeyFrameCollection.cs
- EventLogTraceListener.cs
- StringComparer.cs
- XmlSchemaAppInfo.cs
- NamedPipeAppDomainProtocolHandler.cs
- HttpAsyncResult.cs
- ProtocolsInstallComponent.cs
- PropertyValueUIItem.cs
- RegistrationServices.cs
- followingsibling.cs
- ByteKeyFrameCollection.cs
- KoreanCalendar.cs
- TableParagraph.cs
- Odbc32.cs
- SqlResolver.cs
- ScriptModule.cs
- UpdateTracker.cs
- UnwrappedTypesXmlSerializerManager.cs
- SHA384.cs
- DBDataPermissionAttribute.cs
- TraceFilter.cs
- ProcessHostConfigUtils.cs
- LinqDataSourceDisposeEventArgs.cs
- SqlProfileProvider.cs
- ConfigurationValue.cs
- SessionIDManager.cs
- WebPartTransformerCollection.cs
- DateTimeFormat.cs
- RangeContentEnumerator.cs
- ImageEditor.cs
- Parser.cs
- ClientBuildManagerCallback.cs
- Win32Exception.cs
- TrackingMemoryStream.cs
- ChannelTokenTypeConverter.cs
- WmlPanelAdapter.cs
- SharedDp.cs
- PrintSystemException.cs
- InputBinding.cs
- counter.cs
- SystemNetHelpers.cs
- BooleanAnimationUsingKeyFrames.cs
- LogLogRecord.cs
- XmlSerializerVersionAttribute.cs
- DataGrid.cs
- ProcessHostServerConfig.cs
- LoginCancelEventArgs.cs
- OdbcStatementHandle.cs
- BitmapMetadata.cs
- HttpCacheVary.cs
- IsolatedStoragePermission.cs
- AnnotationDocumentPaginator.cs
- FullTextLine.cs
- WeakReadOnlyCollection.cs
- ApplicationInfo.cs
- NetTcpSecurity.cs