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
- HttpVersion.cs
- DefaultPrintController.cs
- WebInvokeAttribute.cs
- MasterPage.cs
- TrackBar.cs
- IisTraceListener.cs
- HandlerBase.cs
- ResolvedKeyFrameEntry.cs
- PropertyDescriptors.cs
- TextEditorDragDrop.cs
- ErrorFormatterPage.cs
- TreeViewImageIndexConverter.cs
- SafeSecurityHelper.cs
- TraversalRequest.cs
- FormViewUpdateEventArgs.cs
- SmiGettersStream.cs
- UInt64.cs
- HandleExceptionArgs.cs
- ManifestResourceInfo.cs
- XmlAttributeHolder.cs
- ReadWriteObjectLock.cs
- TextParagraph.cs
- ControlBuilder.cs
- ExpressionNode.cs
- SafeNativeMethods.cs
- NavigateUrlConverter.cs
- srgsitem.cs
- SecurityElement.cs
- _AcceptOverlappedAsyncResult.cs
- SqlFacetAttribute.cs
- StandardMenuStripVerb.cs
- PartDesigner.cs
- SafeFileHandle.cs
- AuthenticationManager.cs
- GridViewDeletedEventArgs.cs
- FontConverter.cs
- ApplicationServiceHelper.cs
- InboundActivityHelper.cs
- BitmapEffectRenderDataResource.cs
- ByteAnimation.cs
- ObjectManager.cs
- DataGridViewCellCancelEventArgs.cs
- DoubleConverter.cs
- ContextMenuStrip.cs
- ActivityFunc.cs
- WriterOutput.cs
- Common.cs
- DomainUpDown.cs
- TypeBuilder.cs
- XmlUtf8RawTextWriter.cs
- SqlNodeTypeOperators.cs
- ProfilePropertySettingsCollection.cs
- UrlPath.cs
- Int32Storage.cs
- SspiSecurityTokenProvider.cs
- DescendantQuery.cs
- DataColumnPropertyDescriptor.cs
- TableParaClient.cs
- StringComparer.cs
- XmlUtf8RawTextWriter.cs
- Geometry3D.cs
- DelegateHelpers.Generated.cs
- MaterialGroup.cs
- SqlAliasesReferenced.cs
- CodeRegionDirective.cs
- TemplatedMailWebEventProvider.cs
- HtmlLiteralTextAdapter.cs
- DataSysAttribute.cs
- ServiceParser.cs
- DiscardableAttribute.cs
- DataStreamFromComStream.cs
- WebPartVerb.cs
- TransformProviderWrapper.cs
- TextPointer.cs
- BrushConverter.cs
- HtmlLink.cs
- GZipDecoder.cs
- ObjectStorage.cs
- DefaultAssemblyResolver.cs
- XmlUtf8RawTextWriter.cs
- SetUserLanguageRequest.cs
- WpfXamlLoader.cs
- diagnosticsswitches.cs
- BigInt.cs
- SafeThreadHandle.cs
- UpdateExpressionVisitor.cs
- IItemContainerGenerator.cs
- XmlNamespaceDeclarationsAttribute.cs
- RegistrySecurity.cs
- BinaryVersion.cs
- UserControlCodeDomTreeGenerator.cs
- LogLogRecord.cs
- FormsAuthentication.cs
- ZipIOExtraFieldPaddingElement.cs
- RequestCachePolicy.cs
- HelpInfo.cs
- MultitargetingHelpers.cs
- CryptoStream.cs
- MetricEntry.cs
- Span.cs