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
- EncoderNLS.cs
- XPathScanner.cs
- HeaderUtility.cs
- GroupBox.cs
- LicenseContext.cs
- ComponentChangedEvent.cs
- StylusPointProperty.cs
- MappingSource.cs
- TypeConverterHelper.cs
- ColorAnimationBase.cs
- URIFormatException.cs
- HttpCacheVary.cs
- ScriptResourceHandler.cs
- ComponentEditorForm.cs
- PrinterUnitConvert.cs
- StrongTypingException.cs
- TextEffectCollection.cs
- ListViewItemMouseHoverEvent.cs
- ParsedAttributeCollection.cs
- AuthenticationModulesSection.cs
- LinearGradientBrush.cs
- StdRegProviderWrapper.cs
- StringHandle.cs
- LinqMaximalSubtreeNominator.cs
- EmptyStringExpandableObjectConverter.cs
- QilReference.cs
- DnsEndpointIdentity.cs
- CodeTypeReference.cs
- ParenthesizePropertyNameAttribute.cs
- HtmlEmptyTagControlBuilder.cs
- TabItem.cs
- FileSystemWatcher.cs
- Convert.cs
- SHA384Managed.cs
- ParameterReplacerVisitor.cs
- DurableOperationContext.cs
- WebPartZoneBase.cs
- ProofTokenCryptoHandle.cs
- wgx_render.cs
- JsonWriterDelegator.cs
- Pair.cs
- KeyGesture.cs
- InfiniteTimeSpanConverter.cs
- CompleteWizardStep.cs
- CommandPlan.cs
- XmlUrlResolver.cs
- ControlType.cs
- LockCookie.cs
- CompoundFileDeflateTransform.cs
- FlagsAttribute.cs
- AssemblySettingAttributes.cs
- NumberAction.cs
- ConsoleKeyInfo.cs
- DesignerAutoFormat.cs
- WinHttpWebProxyFinder.cs
- MsmqTransportElement.cs
- Screen.cs
- EntityType.cs
- XPathNavigatorReader.cs
- SoapServerMessage.cs
- TextOptions.cs
- CryptoHandle.cs
- DataExpression.cs
- HttpCapabilitiesSectionHandler.cs
- Utilities.cs
- MoveSizeWinEventHandler.cs
- RequestCachePolicy.cs
- CustomValidator.cs
- FilteredAttributeCollection.cs
- CorrelationResolver.cs
- NGCPageContentSerializerAsync.cs
- HtmlInputReset.cs
- EncodingStreamWrapper.cs
- MasterPageParser.cs
- SymbolPair.cs
- InfocardExtendedInformationCollection.cs
- WeakReferenceKey.cs
- CustomAttributeBuilder.cs
- EventNotify.cs
- PeerResolverBindingElement.cs
- GridViewCancelEditEventArgs.cs
- ProtocolsSection.cs
- ConfigXmlSignificantWhitespace.cs
- CreateUserWizard.cs
- RegexGroupCollection.cs
- SqlDataSource.cs
- ExpressionParser.cs
- TdsParserHelperClasses.cs
- ClientConvert.cs
- BulletedListEventArgs.cs
- InternalConfigEventArgs.cs
- CompModSwitches.cs
- GridEntryCollection.cs
- DriveNotFoundException.cs
- SiteMapDataSource.cs
- SetStateDesigner.cs
- SuppressMergeCheckAttribute.cs
- ConfigXmlText.cs
- DoubleLinkListEnumerator.cs
- xmlsaver.cs