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
- PeerNameResolver.cs
- translator.cs
- EventLogPermissionEntry.cs
- ConsumerConnectionPoint.cs
- TextFormatterHost.cs
- CapabilitiesAssignment.cs
- SecurityIdentifierConverter.cs
- OleDbRowUpdatingEvent.cs
- ListView.cs
- Nullable.cs
- Pair.cs
- TreeBuilder.cs
- MenuItemBindingCollection.cs
- HiddenField.cs
- MarginsConverter.cs
- PartialTrustVisibleAssembliesSection.cs
- EmptyEnumerable.cs
- StateBag.cs
- ColorConverter.cs
- InstanceKeyNotReadyException.cs
- MobileFormsAuthentication.cs
- StreamUpgradeProvider.cs
- LinqDataSourceInsertEventArgs.cs
- FileDialog.cs
- ToolBarTray.cs
- GenerateScriptTypeAttribute.cs
- PublishLicense.cs
- CurrentChangingEventManager.cs
- TdsParserSafeHandles.cs
- SoapFault.cs
- MasterPageParser.cs
- ConfigurationLoader.cs
- SiteMap.cs
- WindowsFormsSynchronizationContext.cs
- OleDbDataReader.cs
- PtsHost.cs
- FileStream.cs
- ProxyWebPartConnectionCollection.cs
- DelegateArgumentReference.cs
- wmiprovider.cs
- Run.cs
- IProducerConsumerCollection.cs
- VarRefManager.cs
- hebrewshape.cs
- DataGridViewIntLinkedList.cs
- TextFindEngine.cs
- EmptyQuery.cs
- DependencyPropertyDescriptor.cs
- GridViewColumnHeaderAutomationPeer.cs
- MexHttpBindingCollectionElement.cs
- RangeValuePattern.cs
- FieldDescriptor.cs
- MouseWheelEventArgs.cs
- SchemaMapping.cs
- RemotingServices.cs
- ParseElementCollection.cs
- SchemeSettingElement.cs
- MonitoringDescriptionAttribute.cs
- NumberSubstitution.cs
- UnsafeNativeMethods.cs
- TranslateTransform3D.cs
- MimeObjectFactory.cs
- DynamicHyperLink.cs
- SystemIcmpV4Statistics.cs
- MaskPropertyEditor.cs
- OrderedDictionary.cs
- ToolStripGrip.cs
- ProvidePropertyAttribute.cs
- GridErrorDlg.cs
- CmsInterop.cs
- EntitySqlQueryCacheKey.cs
- KnownBoxes.cs
- SystemBrushes.cs
- RoleManagerSection.cs
- FileSystemWatcher.cs
- ExecutorLocksHeldException.cs
- LocatorPartList.cs
- AccessDataSourceView.cs
- AmbiguousMatchException.cs
- EnumType.cs
- CompositeTypefaceMetrics.cs
- SqlFormatter.cs
- BridgeDataRecord.cs
- PrintPageEvent.cs
- BindToObject.cs
- Point3DAnimation.cs
- ExpressionReplacer.cs
- RawStylusInput.cs
- JsonServiceDocumentSerializer.cs
- sqlpipe.cs
- FilterElement.cs
- AutoCompleteStringCollection.cs
- ByteAnimationBase.cs
- LogicalCallContext.cs
- ReflectPropertyDescriptor.cs
- CannotUnloadAppDomainException.cs
- XPathSingletonIterator.cs
- followingsibling.cs
- HttpRawResponse.cs
- FilterEventArgs.cs