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
- ToolboxItemLoader.cs
- TabControlAutomationPeer.cs
- XPathDocumentNavigator.cs
- FormatVersion.cs
- DataSourceExpression.cs
- WebPartDescriptionCollection.cs
- CaseInsensitiveComparer.cs
- SQLResource.cs
- DateTimeStorage.cs
- UnicodeEncoding.cs
- DataTemplateSelector.cs
- Shape.cs
- RtfControlWordInfo.cs
- ItemsControlAutomationPeer.cs
- Compilation.cs
- TypeGeneratedEventArgs.cs
- UrlMappingCollection.cs
- TreeChangeInfo.cs
- DbCommandDefinition.cs
- ProcessInfo.cs
- InfoCardRSACryptoProvider.cs
- SiblingIterators.cs
- TableRow.cs
- PolicyException.cs
- WinInet.cs
- TemplatedMailWebEventProvider.cs
- ToolStripComboBox.cs
- DiscoveryDocumentSearchPattern.cs
- Encoder.cs
- ListenerElementsCollection.cs
- MembershipSection.cs
- PersonalizationDictionary.cs
- SslStream.cs
- FontClient.cs
- Identity.cs
- FunctionNode.cs
- EnumerableValidator.cs
- CommonDialog.cs
- NoResizeSelectionBorderGlyph.cs
- Timer.cs
- DataReceivedEventArgs.cs
- ServerIdentity.cs
- ThicknessAnimationUsingKeyFrames.cs
- WaitHandleCannotBeOpenedException.cs
- mediaeventargs.cs
- EntityClassGenerator.cs
- COM2ExtendedUITypeEditor.cs
- XpsFontSubsetter.cs
- InvalidProgramException.cs
- CompilerScope.cs
- RIPEMD160Managed.cs
- NumberFunctions.cs
- TemplatedWizardStep.cs
- UInt64Converter.cs
- UIPropertyMetadata.cs
- BeginEvent.cs
- ContentElementCollection.cs
- MeshGeometry3D.cs
- PropertyEmitterBase.cs
- String.cs
- OperationCanceledException.cs
- TypeUsage.cs
- SqlNamer.cs
- Baml2006KnownTypes.cs
- cache.cs
- ReadOnlyNameValueCollection.cs
- LoginUtil.cs
- CookielessHelper.cs
- TemplatedWizardStep.cs
- codemethodreferenceexpression.cs
- ConnectionOrientedTransportChannelFactory.cs
- ProfileService.cs
- updateconfighost.cs
- CodeMemberEvent.cs
- DataSourceHelper.cs
- nulltextnavigator.cs
- securitycriticaldata.cs
- storagemappingitemcollection.viewdictionary.cs
- TransactionBridgeSection.cs
- SymbolPair.cs
- DispatcherObject.cs
- WebReferencesBuildProvider.cs
- CompositeCollectionView.cs
- WindowsSysHeader.cs
- BamlTreeNode.cs
- HuffCodec.cs
- ProcessManager.cs
- DnsCache.cs
- CustomWebEventKey.cs
- DefaultMemberAttribute.cs
- JsonEncodingStreamWrapper.cs
- MediaContextNotificationWindow.cs
- KeyNameIdentifierClause.cs
- ComponentEditorForm.cs
- MetadataCache.cs
- SQLRoleProvider.cs
- LambdaValue.cs
- MoveSizeWinEventHandler.cs
- GreaterThanOrEqual.cs
- ServicePointManager.cs