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
- BoundPropertyEntry.cs
- HMACMD5.cs
- CompositeCollection.cs
- FileDialogCustomPlacesCollection.cs
- PartitionedStreamMerger.cs
- SerialStream.cs
- LinearGradientBrush.cs
- XmlSchemaDatatype.cs
- LicenseException.cs
- CompoundFileIOPermission.cs
- UriWriter.cs
- CommandEventArgs.cs
- Switch.cs
- ScriptControl.cs
- MissingFieldException.cs
- DbException.cs
- PersonalizationStateInfoCollection.cs
- Rect3DValueSerializer.cs
- Matrix.cs
- _SslStream.cs
- OleServicesContext.cs
- AsymmetricKeyExchangeFormatter.cs
- FullTextBreakpoint.cs
- HttpSysSettings.cs
- ItemMap.cs
- CountAggregationOperator.cs
- ScanQueryOperator.cs
- TabItemAutomationPeer.cs
- Material.cs
- CodeDirectionExpression.cs
- NavigationWindowAutomationPeer.cs
- InvalidOperationException.cs
- XmlArrayItemAttributes.cs
- ToolBarButtonClickEvent.cs
- ProcessThreadDesigner.cs
- ListChangedEventArgs.cs
- HtmlTextArea.cs
- CipherData.cs
- EllipseGeometry.cs
- MouseOverProperty.cs
- ByteStreamGeometryContext.cs
- DataServiceClientException.cs
- DataGridViewImageCell.cs
- DataObject.cs
- SQLSingleStorage.cs
- CustomMenuItemCollection.cs
- SafeFileMapViewHandle.cs
- NativeCppClassAttribute.cs
- ExpressionLexer.cs
- CompressedStack.cs
- MemoryFailPoint.cs
- PolyBezierSegment.cs
- DataGridViewCheckBoxColumn.cs
- CancellationTokenRegistration.cs
- Process.cs
- Pair.cs
- CurrentTimeZone.cs
- PropertyPath.cs
- DesignerActionItemCollection.cs
- ProgressPage.cs
- FormsAuthenticationModule.cs
- InfocardChannelParameter.cs
- FixedSOMLineRanges.cs
- Track.cs
- metadatamappinghashervisitor.hashsourcebuilder.cs
- SimpleType.cs
- ipaddressinformationcollection.cs
- SQLGuidStorage.cs
- WebEvents.cs
- Brush.cs
- COM2IDispatchConverter.cs
- TextTreeText.cs
- COM2IPerPropertyBrowsingHandler.cs
- XslVisitor.cs
- PropertyChangeTracker.cs
- RequestSecurityToken.cs
- XmlDataSourceNodeDescriptor.cs
- TrustLevel.cs
- BookmarkScopeManager.cs
- WebProxyScriptElement.cs
- SqlCacheDependencyDatabase.cs
- AspNetSynchronizationContext.cs
- TraceListener.cs
- URLEditor.cs
- OdbcCommand.cs
- RowUpdatedEventArgs.cs
- _TransmitFileOverlappedAsyncResult.cs
- CompilationUtil.cs
- X509AudioLogo.cs
- Emitter.cs
- GetPageNumberCompletedEventArgs.cs
- GreenMethods.cs
- OutputCacheSettingsSection.cs
- PixelShader.cs
- AssertUtility.cs
- DynamicUpdateCommand.cs
- ImageField.cs
- Validator.cs
- XmlProcessingInstruction.cs
- FixedSOMSemanticBox.cs