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
- RowParagraph.cs
- SqlRowUpdatingEvent.cs
- AnimationLayer.cs
- GeometryDrawing.cs
- DataGridColumnReorderingEventArgs.cs
- DEREncoding.cs
- UpdatePanel.cs
- DrawingDrawingContext.cs
- WorkflowApplication.cs
- MappingMetadataHelper.cs
- BookmarkEventArgs.cs
- ConfigurationSettings.cs
- HtmlUtf8RawTextWriter.cs
- RectangleHotSpot.cs
- ObjectListItem.cs
- UMPAttributes.cs
- ForeignConstraint.cs
- PathSegmentCollection.cs
- TextElementAutomationPeer.cs
- Page.cs
- Matrix.cs
- ErrorFormatter.cs
- UserControl.cs
- Misc.cs
- QuadTree.cs
- DbDataSourceEnumerator.cs
- PagerSettings.cs
- MenuItemStyle.cs
- AddingNewEventArgs.cs
- ScriptControl.cs
- Calendar.cs
- StdValidatorsAndConverters.cs
- ListViewTableCell.cs
- ActionFrame.cs
- AliasExpr.cs
- TextDecoration.cs
- TextTreeRootTextBlock.cs
- WebContext.cs
- PartitionedStream.cs
- EditorZone.cs
- SimpleBitVector32.cs
- CodeAssignStatement.cs
- XamlTypeMapper.cs
- SiteMapHierarchicalDataSourceView.cs
- SizeConverter.cs
- EllipticalNodeOperations.cs
- BooleanFunctions.cs
- Style.cs
- MatrixKeyFrameCollection.cs
- CompressEmulationStream.cs
- Metadata.cs
- Comparer.cs
- PostBackOptions.cs
- ListViewTableCell.cs
- UnrecognizedAssertionsBindingElement.cs
- GeometryHitTestParameters.cs
- WebPartEditorOkVerb.cs
- ManagementExtension.cs
- baseaxisquery.cs
- ServicesExceptionNotHandledEventArgs.cs
- FontFamilyIdentifier.cs
- ArrayConverter.cs
- OleDbParameterCollection.cs
- ResourceDisplayNameAttribute.cs
- SqlVisitor.cs
- IndependentAnimationStorage.cs
- StaticSiteMapProvider.cs
- SettingsProperty.cs
- PackageRelationshipCollection.cs
- SortableBindingList.cs
- DecimalAnimationUsingKeyFrames.cs
- ComPlusTraceRecord.cs
- TypeRestriction.cs
- Debug.cs
- SimplePropertyEntry.cs
- LinkButton.cs
- MutexSecurity.cs
- DbParameterHelper.cs
- HttpModuleCollection.cs
- WebSysDescriptionAttribute.cs
- WpfWebRequestHelper.cs
- Menu.cs
- SHA384.cs
- ExceptionValidationRule.cs
- EventLogger.cs
- MsmqEncryptionAlgorithm.cs
- UrlAuthFailedErrorFormatter.cs
- GetMemberBinder.cs
- SharedUtils.cs
- PrinterSettings.cs
- PhonemeEventArgs.cs
- AnnotationAdorner.cs
- Frame.cs
- SymmetricSecurityProtocol.cs
- CompositionTarget.cs
- ToolboxItemCollection.cs
- Point3DCollectionValueSerializer.cs
- _FixedSizeReader.cs
- CompensatableTransactionScopeActivity.cs
- BaseCodePageEncoding.cs