Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / 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
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SessionStateModule.cs
- StylusTouchDevice.cs
- NamespaceList.cs
- ProcessRequestArgs.cs
- DataGridPagerStyle.cs
- DocumentGridContextMenu.cs
- XslException.cs
- DeviceContext2.cs
- ErrorWrapper.cs
- HebrewNumber.cs
- WindowsListViewItem.cs
- Utils.cs
- RegexCompiler.cs
- M3DUtil.cs
- ThreadAbortException.cs
- SocketPermission.cs
- ToolCreatedEventArgs.cs
- Range.cs
- DataControlImageButton.cs
- FontDriver.cs
- AccessDataSource.cs
- ReadOnlyAttribute.cs
- XhtmlBasicCommandAdapter.cs
- StructuralType.cs
- XmlWellformedWriter.cs
- DisplayNameAttribute.cs
- ListViewEditEventArgs.cs
- WebPartsSection.cs
- PageFunction.cs
- WaitHandle.cs
- EmptyImpersonationContext.cs
- Helper.cs
- EventToken.cs
- ChunkedMemoryStream.cs
- RecordManager.cs
- PagesChangedEventArgs.cs
- ActivityDesignerResources.cs
- linebase.cs
- ServiceHost.cs
- DataGridColumnStyleMappingNameEditor.cs
- GPRECT.cs
- DispatcherFrame.cs
- IfAction.cs
- XPathNavigatorReader.cs
- SecurityMessageProperty.cs
- DataGridViewHeaderCell.cs
- SafeEventHandle.cs
- ViewStateAttachedPropertyFeature.cs
- ExtensionSurface.cs
- NameValueFileSectionHandler.cs
- TokenBasedSetEnumerator.cs
- DataColumnMapping.cs
- EntityDataSourceWizardForm.cs
- XmlSchemaAnnotation.cs
- Line.cs
- StreamResourceInfo.cs
- ReadOnlyPermissionSet.cs
- ListBindingHelper.cs
- WindowCollection.cs
- ToolStripRendererSwitcher.cs
- Vector3DAnimationUsingKeyFrames.cs
- Matrix.cs
- ZoneButton.cs
- CancellationState.cs
- SetStateEventArgs.cs
- DialogDivider.cs
- LeftCellWrapper.cs
- thaishape.cs
- BrushMappingModeValidation.cs
- HuffCodec.cs
- MetadataCacheItem.cs
- WebBrowser.cs
- CommandLibraryHelper.cs
- ProtocolElementCollection.cs
- StorageEntitySetMapping.cs
- MarshalByValueComponent.cs
- IItemProperties.cs
- EnumValAlphaComparer.cs
- TypeInitializationException.cs
- CellRelation.cs
- Slider.cs
- XPathNodeList.cs
- PropertyDescriptor.cs
- BaseComponentEditor.cs
- Container.cs
- WebPartAddingEventArgs.cs
- CreateUserErrorEventArgs.cs
- input.cs
- StorageRoot.cs
- UnsafeNativeMethods.cs
- MappedMetaModel.cs
- RegexWriter.cs
- AppDomainProtocolHandler.cs
- Decimal.cs
- XmlSerializerSection.cs
- ScrollBar.cs
- AccessibilityHelperForXpWin2k3.cs
- Stroke2.cs
- CombinedGeometry.cs
- Codec.cs