Code:
/ DotNET / DotNET / 8.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
- XamlBrushSerializer.cs
- XmlC14NWriter.cs
- ProcessHostMapPath.cs
- AssociatedControlConverter.cs
- SplayTreeNode.cs
- DefaultValueConverter.cs
- TextDocumentView.cs
- _Rfc2616CacheValidators.cs
- WebPartDisplayModeCollection.cs
- EntityModelBuildProvider.cs
- UIElementParagraph.cs
- DocComment.cs
- DragEventArgs.cs
- DtrList.cs
- PasswordTextContainer.cs
- ObjectDataSourceStatusEventArgs.cs
- Utils.cs
- XPathConvert.cs
- columnmapfactory.cs
- TrackingServices.cs
- xdrvalidator.cs
- ManagementClass.cs
- RoleService.cs
- Positioning.cs
- RouteParametersHelper.cs
- AliasedExpr.cs
- DiscreteKeyFrames.cs
- FileRecordSequenceCompletedAsyncResult.cs
- XmlAnyAttributeAttribute.cs
- UserNameSecurityToken.cs
- KernelTypeValidation.cs
- SystemIPv6InterfaceProperties.cs
- DataSetUtil.cs
- HwndAppCommandInputProvider.cs
- WebPartCloseVerb.cs
- SecurityState.cs
- DataControlFieldsEditor.cs
- ISO2022Encoding.cs
- SerializationObjectManager.cs
- Ray3DHitTestResult.cs
- IfJoinedCondition.cs
- IPipelineRuntime.cs
- TextSimpleMarkerProperties.cs
- StructuredProperty.cs
- SoapAttributeAttribute.cs
- AppliedDeviceFiltersDialog.cs
- WebControlsSection.cs
- UndoManager.cs
- DataBindingCollection.cs
- ColorAnimationBase.cs
- CollectionContainer.cs
- FontUnit.cs
- LayoutEngine.cs
- GroupBoxRenderer.cs
- OperatingSystem.cs
- ClosableStream.cs
- TextEffectCollection.cs
- DelegateBodyWriter.cs
- ThicknessAnimationBase.cs
- BuildProviderUtils.cs
- SystemDiagnosticsSection.cs
- ILGen.cs
- WhitespaceRuleLookup.cs
- MimeFormatter.cs
- ConfigurationSectionGroupCollection.cs
- SmiMetaDataProperty.cs
- ServiceDiscoveryBehavior.cs
- TextEndOfParagraph.cs
- AuthorizationSection.cs
- SchemaElementDecl.cs
- DataSourceCacheDurationConverter.cs
- ProviderConnectionPointCollection.cs
- SchemaExporter.cs
- BindableAttribute.cs
- VarRemapper.cs
- SQLByteStorage.cs
- AsyncOperation.cs
- BoolExpressionVisitors.cs
- ResolveMatchesCD1.cs
- HttpNamespaceReservationInstallComponent.cs
- DataServiceOperationContext.cs
- AnonymousIdentificationSection.cs
- DefaultMemberAttribute.cs
- OutputCacheProfile.cs
- TextTreeObjectNode.cs
- XmlReaderDelegator.cs
- ObjectStateFormatter.cs
- DocumentGridPage.cs
- ActiveXHost.cs
- TextRange.cs
- WmpBitmapDecoder.cs
- TextComposition.cs
- SoapFault.cs
- DrawingCollection.cs
- DataContractSerializer.cs
- TagPrefixAttribute.cs
- MetricEntry.cs
- SynchronizedDispatch.cs
- DetailsViewPageEventArgs.cs
- Point3DCollection.cs