Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / 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
// 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
- LogReservationCollection.cs
- XAMLParseException.cs
- HttpFileCollection.cs
- TableRow.cs
- TransactionOptions.cs
- MarkedHighlightComponent.cs
- BasicBrowserDialog.designer.cs
- Int64.cs
- MultiViewDesigner.cs
- CallbackDebugBehavior.cs
- SqlError.cs
- TreeNodeCollection.cs
- XPathSelectionIterator.cs
- FixUpCollection.cs
- altserialization.cs
- CompiledQueryCacheKey.cs
- AnimatedTypeHelpers.cs
- DataBoundControlAdapter.cs
- InOutArgumentConverter.cs
- DataControlPagerLinkButton.cs
- DragDropHelper.cs
- DBCommand.cs
- GridViewRow.cs
- DropSource.cs
- ScrollPattern.cs
- dataobject.cs
- HybridDictionary.cs
- hwndwrapper.cs
- XPathSelectionIterator.cs
- _SslStream.cs
- BlurEffect.cs
- Math.cs
- UnmanagedBitmapWrapper.cs
- DocumentAutomationPeer.cs
- FontNamesConverter.cs
- EtwTrace.cs
- SemaphoreSecurity.cs
- DecimalAnimationUsingKeyFrames.cs
- HtmlWindowCollection.cs
- BufferModesCollection.cs
- SmtpFailedRecipientException.cs
- ResourceBinder.cs
- KeyGestureConverter.cs
- WeakEventTable.cs
- XmlSchemaAnnotation.cs
- DbProviderSpecificTypePropertyAttribute.cs
- IgnoreFileBuildProvider.cs
- EntityTransaction.cs
- SecurityProtocolCorrelationState.cs
- WebPartVerbCollection.cs
- PrintController.cs
- _emptywebproxy.cs
- XNodeValidator.cs
- RadioButton.cs
- ExtendedProperty.cs
- SqlDataReaderSmi.cs
- CryptoHandle.cs
- ZipIOZip64EndOfCentralDirectoryBlock.cs
- DirtyTextRange.cs
- DesignerLoader.cs
- EventLogWatcher.cs
- ItemCollection.cs
- BamlBinaryWriter.cs
- MinimizableAttributeTypeConverter.cs
- RayMeshGeometry3DHitTestResult.cs
- Mouse.cs
- SharedPerformanceCounter.cs
- ConversionValidationRule.cs
- sqlstateclientmanager.cs
- TransactionWaitAsyncResult.cs
- ConfigurationSchemaErrors.cs
- AspNetHostingPermission.cs
- ColumnWidthChangingEvent.cs
- LinearGradientBrush.cs
- MachineKeySection.cs
- ControlAdapter.cs
- XmlSchemaValidationException.cs
- AssemblyCollection.cs
- EncoderParameters.cs
- SchemaElement.cs
- ReadOnlyDictionary.cs
- TrustManagerMoreInformation.cs
- InputProcessorProfiles.cs
- TreeViewHitTestInfo.cs
- VisualTreeHelper.cs
- Tokenizer.cs
- ThicknessAnimation.cs
- DisplayMemberTemplateSelector.cs
- StandardBindingReliableSessionElement.cs
- FrameworkContentElement.cs
- PrinterUnitConvert.cs
- TypedTableGenerator.cs
- ADConnectionHelper.cs
- KnownTypesProvider.cs
- XmlSerializerAssemblyAttribute.cs
- ReturnValue.cs
- SessionStateUtil.cs
- BitmapMetadataEnumerator.cs
- NullExtension.cs
- DockPattern.cs