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
- RawTextInputReport.cs
- HttpListener.cs
- DoubleSumAggregationOperator.cs
- ActivityDesignerAccessibleObject.cs
- TraceHandler.cs
- UTF7Encoding.cs
- SynchronizedDispatch.cs
- WebSysDisplayNameAttribute.cs
- MouseWheelEventArgs.cs
- smtpconnection.cs
- CaseStatementProjectedSlot.cs
- AnnotationElement.cs
- AssemblyCacheEntry.cs
- ObjectFullSpanRewriter.cs
- TrustManager.cs
- FrameworkContentElement.cs
- WeakHashtable.cs
- DockPatternIdentifiers.cs
- CacheForPrimitiveTypes.cs
- ValidatingReaderNodeData.cs
- GlyphInfoList.cs
- Mutex.cs
- TargetControlTypeCache.cs
- ObjectDataSourceDesigner.cs
- HostedBindingBehavior.cs
- ManualResetEvent.cs
- PolicyLevel.cs
- ResourcesBuildProvider.cs
- CompiledAction.cs
- DataGridTextBox.cs
- TimeManager.cs
- SubordinateTransaction.cs
- PageCatalogPart.cs
- SQLCharsStorage.cs
- WsdlInspector.cs
- WhitespaceSignificantCollectionAttribute.cs
- HwndHost.cs
- ValidationEventArgs.cs
- DataControlImageButton.cs
- GeometryDrawing.cs
- CreateUserErrorEventArgs.cs
- ThicknessAnimationBase.cs
- TextAction.cs
- ThemeDirectoryCompiler.cs
- AttributeUsageAttribute.cs
- XmlEnumAttribute.cs
- StructuredTypeEmitter.cs
- ColorConverter.cs
- ContextStaticAttribute.cs
- ToolStripTextBox.cs
- CodeAttributeArgumentCollection.cs
- dataobject.cs
- MemberDomainMap.cs
- ContextStaticAttribute.cs
- SapiAttributeParser.cs
- ExpressionBindingCollection.cs
- SizeAnimationUsingKeyFrames.cs
- AmbiguousMatchException.cs
- AsyncParams.cs
- ObjectViewFactory.cs
- RubberbandSelector.cs
- SmiMetaData.cs
- ComPlusServiceHost.cs
- SystemInfo.cs
- UpdateProgress.cs
- SmtpNetworkElement.cs
- RowToFieldTransformer.cs
- Queue.cs
- KeyMatchBuilder.cs
- WebPartTransformerAttribute.cs
- ItemDragEvent.cs
- AddressUtility.cs
- MemberInfoSerializationHolder.cs
- DragEvent.cs
- RegisteredArrayDeclaration.cs
- XmlHierarchyData.cs
- TextRange.cs
- RedirectionProxy.cs
- XamlClipboardData.cs
- DiffuseMaterial.cs
- ObjectQuery.cs
- MetadataArtifactLoaderCompositeFile.cs
- VerticalAlignConverter.cs
- Query.cs
- RootNamespaceAttribute.cs
- ConnectionStringsExpressionBuilder.cs
- PerformanceCounterLib.cs
- WindowsServiceCredential.cs
- RuntimeDelegateArgument.cs
- MDIControlStrip.cs
- BadImageFormatException.cs
- SmiContextFactory.cs
- PopupEventArgs.cs
- GridProviderWrapper.cs
- ChangeInterceptorAttribute.cs
- BookmarkEventArgs.cs
- Matrix3DStack.cs
- BaseCollection.cs
- ArrayElementGridEntry.cs
- UpdatePanelControlTrigger.cs