Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / 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
- Point.cs
- GroupStyle.cs
- PolicyManager.cs
- XmlAttributes.cs
- UnwrappedTypesXmlSerializerManager.cs
- MemberDomainMap.cs
- ProtocolViolationException.cs
- RelativeSource.cs
- Vector3DAnimation.cs
- UrlAuthorizationModule.cs
- OleDbParameter.cs
- ELinqQueryState.cs
- NetworkInterface.cs
- DSACryptoServiceProvider.cs
- XmlAnyAttributeAttribute.cs
- SecurityToken.cs
- PropertyValueEditor.cs
- ComponentResourceKey.cs
- BaseConfigurationRecord.cs
- LiteralSubsegment.cs
- System.Data.OracleClient_BID.cs
- CompensationToken.cs
- DoubleCollectionValueSerializer.cs
- FlowDocumentReaderAutomationPeer.cs
- XPathSingletonIterator.cs
- WindowsFormsLinkLabel.cs
- LinkClickEvent.cs
- TrueReadOnlyCollection.cs
- ScopelessEnumAttribute.cs
- SessionSwitchEventArgs.cs
- MasterPageBuildProvider.cs
- EncryptedReference.cs
- XPathNodeIterator.cs
- Atom10FormatterFactory.cs
- HScrollProperties.cs
- DataSourceXmlSerializationAttribute.cs
- CategoryNameCollection.cs
- ObjectStateFormatter.cs
- GenericIdentity.cs
- IntSecurity.cs
- NamedPermissionSet.cs
- GlyphsSerializer.cs
- AppDomainManager.cs
- DiffuseMaterial.cs
- EndpointNameMessageFilter.cs
- TreeNodeStyle.cs
- NegationPusher.cs
- BindableTemplateBuilder.cs
- AdCreatedEventArgs.cs
- XmlWrappingReader.cs
- _ScatterGatherBuffers.cs
- FocusChangedEventArgs.cs
- ComboBoxRenderer.cs
- SQLBinaryStorage.cs
- UInt16.cs
- InvalidAsynchronousStateException.cs
- CounterSetInstance.cs
- ParameterToken.cs
- WebPartChrome.cs
- PrintPageEvent.cs
- TransactionScope.cs
- WindowsBrush.cs
- CTreeGenerator.cs
- Switch.cs
- DirectoryInfo.cs
- InvalidOperationException.cs
- FileLoadException.cs
- FolderBrowserDialog.cs
- cookie.cs
- Highlights.cs
- PropagatorResult.cs
- CutCopyPasteHelper.cs
- XmlDocumentType.cs
- ApplicationSecurityManager.cs
- SqlUserDefinedTypeAttribute.cs
- DynamicDiscoveryDocument.cs
- SelectedGridItemChangedEvent.cs
- Matrix3D.cs
- compensatingcollection.cs
- ObjectListCommand.cs
- GregorianCalendar.cs
- DispatcherExceptionFilterEventArgs.cs
- Page.cs
- StateDesigner.cs
- InputDevice.cs
- EntityObject.cs
- XmlParserContext.cs
- TimersDescriptionAttribute.cs
- VirtualizedContainerService.cs
- ServicePoint.cs
- HierarchicalDataSourceControl.cs
- Error.cs
- DataBoundControlHelper.cs
- UnsafeNativeMethodsCLR.cs
- OleDbConnectionInternal.cs
- Animatable.cs
- ObjectDisposedException.cs
- ApplicationInfo.cs
- COM2FontConverter.cs
- UnsafeNativeMethods.cs