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
- NullableBoolConverter.cs
- EncodingInfo.cs
- TextViewSelectionProcessor.cs
- SiteMapSection.cs
- XmlSchemaElement.cs
- InstanceCollisionException.cs
- PageCatalogPart.cs
- FunctionDetailsReader.cs
- cache.cs
- DesignerAttribute.cs
- ObjectRef.cs
- DocumentPage.cs
- AuthorizationSection.cs
- MultiDataTrigger.cs
- LinqDataSource.cs
- EasingQuaternionKeyFrame.cs
- InheritanceAttribute.cs
- ClientTargetCollection.cs
- DataListItemEventArgs.cs
- SystemResourceHost.cs
- DataServiceRequestOfT.cs
- FixedSOMPageElement.cs
- CompilerResults.cs
- XPathNavigator.cs
- HierarchicalDataBoundControlAdapter.cs
- ErrorWebPart.cs
- BufferBuilder.cs
- RSAPKCS1SignatureDeformatter.cs
- ConstantCheck.cs
- AccessibleObject.cs
- Misc.cs
- SqlDataSourceCustomCommandEditor.cs
- AmbientLight.cs
- SerializableTypeCodeDomSerializer.cs
- ContextProperty.cs
- TransformCryptoHandle.cs
- NavigatingCancelEventArgs.cs
- MultilineStringEditor.cs
- HMACSHA384.cs
- PrintingPermission.cs
- MdiWindowListStrip.cs
- CatalogPartChrome.cs
- XamlSerializerUtil.cs
- ServiceOperationParameter.cs
- DataGridBoolColumn.cs
- TreeNodeEventArgs.cs
- ObjectContext.cs
- WebRequestModulesSection.cs
- RepeatButtonAutomationPeer.cs
- RuntimeConfig.cs
- TargetConverter.cs
- CachingParameterInspector.cs
- ContainerParagraph.cs
- ButtonChrome.cs
- TypeUnloadedException.cs
- JoinCqlBlock.cs
- Latin1Encoding.cs
- CanonicalFormWriter.cs
- basenumberconverter.cs
- ElementAction.cs
- ListParagraph.cs
- DataGridViewColumnCollection.cs
- X509CertificateTrustedIssuerElement.cs
- AsymmetricKeyExchangeFormatter.cs
- RectangleHotSpot.cs
- ToolStripSystemRenderer.cs
- HttpServerVarsCollection.cs
- CmsUtils.cs
- HostingEnvironmentException.cs
- Renderer.cs
- SpellerError.cs
- HtmlButton.cs
- LogStore.cs
- DynamicILGenerator.cs
- SHA384.cs
- TableAutomationPeer.cs
- NameSpaceExtractor.cs
- ListViewItemMouseHoverEvent.cs
- CopyAction.cs
- Control.cs
- securestring.cs
- ListViewContainer.cs
- PrivateFontCollection.cs
- StorageTypeMapping.cs
- SqlBuffer.cs
- ToolZone.cs
- BinaryUtilClasses.cs
- XsltException.cs
- BoundsDrawingContextWalker.cs
- PrePrepareMethodAttribute.cs
- GetWinFXPath.cs
- MappingSource.cs
- XamlTypeMapper.cs
- DataDocumentXPathNavigator.cs
- Faults.cs
- listitem.cs
- XPathParser.cs
- _FixedSizeReader.cs
- Vector3DKeyFrameCollection.cs
- DrawingImage.cs