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
- XmlTextAttribute.cs
- ReplyChannel.cs
- WindowsTokenRoleProvider.cs
- ParserHooks.cs
- RegularExpressionValidator.cs
- SamlSerializer.cs
- BinaryObjectReader.cs
- TriggerActionCollection.cs
- BookmarkScope.cs
- DataColumnSelectionConverter.cs
- Invariant.cs
- TypeConstant.cs
- PeerTransportCredentialType.cs
- MDIWindowDialog.cs
- ToolTipAutomationPeer.cs
- LocatorPartList.cs
- UntypedNullExpression.cs
- LicenseContext.cs
- WhitespaceRule.cs
- FixUp.cs
- ApplicationSettingsBase.cs
- activationcontext.cs
- Mutex.cs
- ResourceDefaultValueAttribute.cs
- SourceFileInfo.cs
- UniqueIdentifierService.cs
- CultureMapper.cs
- WorkflowEnvironment.cs
- ColorTransformHelper.cs
- XsltLoader.cs
- RequiredAttributeAttribute.cs
- InvalidProgramException.cs
- PathBox.cs
- CompositeCollection.cs
- ImageConverter.cs
- FunctionMappingTranslator.cs
- LocalizableAttribute.cs
- webclient.cs
- IDReferencePropertyAttribute.cs
- InplaceBitmapMetadataWriter.cs
- Internal.cs
- EntitySetDataBindingList.cs
- EntityKeyElement.cs
- WebCategoryAttribute.cs
- MaterialGroup.cs
- ToolStripStatusLabel.cs
- HandleCollector.cs
- NavigationEventArgs.cs
- CommandCollectionEditor.cs
- CollectionBase.cs
- MediaScriptCommandRoutedEventArgs.cs
- Point3DCollection.cs
- PersistenceProviderFactory.cs
- CustomBindingElementCollection.cs
- ListViewGroupConverter.cs
- XamlGridLengthSerializer.cs
- Blend.cs
- DataRowExtensions.cs
- AnnouncementEndpoint.cs
- EastAsianLunisolarCalendar.cs
- PageRequestManager.cs
- SimpleWorkerRequest.cs
- AutomationPatternInfo.cs
- Encoder.cs
- RelationshipEnd.cs
- BinaryUtilClasses.cs
- FileDetails.cs
- RectangleGeometry.cs
- DbConnectionPoolGroupProviderInfo.cs
- XmlSchemaCompilationSettings.cs
- XmlQualifiedNameTest.cs
- VariableBinder.cs
- SqlClientWrapperSmiStreamChars.cs
- PenLineJoinValidation.cs
- VirtualizingPanel.cs
- LambdaCompiler.Expressions.cs
- cookiecontainer.cs
- SerializationInfoEnumerator.cs
- SoapAttributeOverrides.cs
- XmlDocumentType.cs
- StringFunctions.cs
- LinkLabelLinkClickedEvent.cs
- Brush.cs
- WindowsBrush.cs
- DockProviderWrapper.cs
- ColumnMap.cs
- XpsFilter.cs
- ExceptionAggregator.cs
- SerializableAttribute.cs
- SQLDateTime.cs
- BasePattern.cs
- CharacterHit.cs
- ByteStreamMessageEncodingElement.cs
- AppDomainUnloadedException.cs
- HMACSHA1.cs
- TransformedBitmap.cs
- XmlSerializationReader.cs
- IOException.cs
- QilTernary.cs
- InstanceKeyView.cs