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
- ResourceType.cs
- SerializationBinder.cs
- XamlLoadErrorInfo.cs
- SafeCancelMibChangeNotify.cs
- InternalUserCancelledException.cs
- X509RawDataKeyIdentifierClause.cs
- ObjectDataSource.cs
- ResourceContainer.cs
- SourceFileInfo.cs
- SqlTriggerAttribute.cs
- CodeRegionDirective.cs
- ConstraintCollection.cs
- RelationshipConverter.cs
- EventHandlersDesigner.cs
- InputLangChangeRequestEvent.cs
- ActivityCodeDomReferenceService.cs
- MasterPageParser.cs
- FormViewInsertEventArgs.cs
- CryptoProvider.cs
- DBConnection.cs
- ReadWriteObjectLock.cs
- TrackingLocationCollection.cs
- PixelShader.cs
- KeyInterop.cs
- DispatcherHooks.cs
- RSAOAEPKeyExchangeFormatter.cs
- XmlCharType.cs
- ColorAnimationUsingKeyFrames.cs
- ProxyWebPartConnectionCollection.cs
- wmiprovider.cs
- PointAnimationBase.cs
- SizeFConverter.cs
- Shape.cs
- AssemblyName.cs
- MaterialGroup.cs
- SafeViewOfFileHandle.cs
- MimeAnyImporter.cs
- HandlerFactoryCache.cs
- VerticalAlignConverter.cs
- RtfControls.cs
- ConstructorExpr.cs
- HostedElements.cs
- SqlFactory.cs
- HwndStylusInputProvider.cs
- VirtualDirectoryMappingCollection.cs
- LazyLoadBehavior.cs
- UniqueIdentifierService.cs
- EmbeddedMailObjectCollectionEditor.cs
- DispatchWrapper.cs
- ListenDesigner.cs
- XmlILTrace.cs
- X509CertificateCollection.cs
- Normalization.cs
- FunctionImportElement.cs
- WriterOutput.cs
- PrimarySelectionGlyph.cs
- WebUtil.cs
- ResourceDescriptionAttribute.cs
- UnsignedPublishLicense.cs
- ObjectViewFactory.cs
- MonthCalendar.cs
- PtsCache.cs
- contentDescriptor.cs
- ProviderSettingsCollection.cs
- HuffmanTree.cs
- MachineKeyConverter.cs
- ChangeConflicts.cs
- Trace.cs
- MemberAccessException.cs
- Soap.cs
- X509Extension.cs
- SqlHelper.cs
- DependencyPropertyValueSerializer.cs
- SendMailErrorEventArgs.cs
- Dump.cs
- Site.cs
- NameValueCollection.cs
- PtsPage.cs
- Transform.cs
- ToolBarOverflowPanel.cs
- MultiPageTextView.cs
- EventPrivateKey.cs
- EventLevel.cs
- BrowsableAttribute.cs
- OracleTransaction.cs
- ArgumentException.cs
- Int32CollectionConverter.cs
- CodeAccessSecurityEngine.cs
- DataControlFieldCollection.cs
- NoneExcludedImageIndexConverter.cs
- ToggleButton.cs
- XmlParserContext.cs
- XPathNavigatorReader.cs
- SchemaConstraints.cs
- BitmapData.cs
- ElementAtQueryOperator.cs
- CodePageUtils.cs
- SecureConversationServiceCredential.cs
- RtfToXamlLexer.cs
- ConfigurationProviderException.cs