Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / CompMod / System / Diagnostics / TraceUtils.cs / 1305376 / 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;
using System.Runtime.Versioning;
namespace System.Diagnostics {
internal static class TraceUtils {
[ResourceExposure(ResourceScope.None)]
[ResourceConsumption(ResourceScope.Machine, ResourceScope.Machine)]
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 (IsOwnedTL(objectType))
throw new ConfigurationErrorsException(SR.GetString(SR.TL_InitializeData_NotSpecified));
// 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 = SecurityUtils.ConstructorInfoInvoke(ctorInfo, 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 = SecurityUtils.ConstructorInfoInvoke(ctorInfo, 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
- WebInvokeAttribute.cs
- StringReader.cs
- TimeoutConverter.cs
- PageOrientation.cs
- VisualStyleInformation.cs
- SafeEventLogWriteHandle.cs
- SynchronizationValidator.cs
- UnknownBitmapEncoder.cs
- XsltLoader.cs
- ColorConvertedBitmapExtension.cs
- X500Name.cs
- SetterBase.cs
- indexingfiltermarshaler.cs
- ContainerControl.cs
- QueueException.cs
- ResXFileRef.cs
- InstancePersistence.cs
- X509CertificateChain.cs
- BindingExpressionBase.cs
- Content.cs
- CheckBoxStandardAdapter.cs
- DataContractSerializerOperationBehavior.cs
- TextRangeEdit.cs
- SessionEndedEventArgs.cs
- SqlTransaction.cs
- ECDiffieHellman.cs
- FilePrompt.cs
- StringArrayConverter.cs
- RepeaterItemCollection.cs
- IApplicationTrustManager.cs
- DrawingCollection.cs
- AuthStoreRoleProvider.cs
- TdsParserSessionPool.cs
- StreamHelper.cs
- SharedPerformanceCounter.cs
- EntityTypeEmitter.cs
- ColumnWidthChangingEvent.cs
- XmlSchemaCollection.cs
- WorkerRequest.cs
- SortKey.cs
- EntityAdapter.cs
- TextSelectionHelper.cs
- HostingEnvironment.cs
- TextDecoration.cs
- SBCSCodePageEncoding.cs
- XmlSerializer.cs
- RelationshipEndCollection.cs
- GC.cs
- NavigatingCancelEventArgs.cs
- PolyQuadraticBezierSegment.cs
- TableLayout.cs
- InstanceKeyNotReadyException.cs
- TypeContext.cs
- DPTypeDescriptorContext.cs
- QilTypeChecker.cs
- StringFunctions.cs
- WindowsAltTab.cs
- WasAdminWrapper.cs
- Point3D.cs
- ZipIOEndOfCentralDirectoryBlock.cs
- FontFaceLayoutInfo.cs
- BlockingCollection.cs
- OleDbTransaction.cs
- WindowsFont.cs
- DataGridRowsPresenter.cs
- NativeMethodsOther.cs
- InkCanvasFeedbackAdorner.cs
- SymDocumentType.cs
- ToolStripContentPanel.cs
- AutoCompleteStringCollection.cs
- Model3D.cs
- DatasetMethodGenerator.cs
- InputBinding.cs
- ExpressionBuilder.cs
- CssTextWriter.cs
- TableAdapterManagerGenerator.cs
- And.cs
- TextTreeExtractElementUndoUnit.cs
- RtfControls.cs
- HtmlTernaryTree.cs
- MemberDescriptor.cs
- SystemColors.cs
- ActiveXHost.cs
- AnnotationComponentManager.cs
- RadioButtonAutomationPeer.cs
- EarlyBoundInfo.cs
- FileIOPermission.cs
- DeviceContext.cs
- HttpListenerRequestUriBuilder.cs
- FormsAuthenticationCredentials.cs
- XNodeValidator.cs
- PropertyInformationCollection.cs
- TextDecoration.cs
- BuildResultCache.cs
- XmlHelper.cs
- DefaultBindingPropertyAttribute.cs
- ReferentialConstraint.cs
- RegistryExceptionHelper.cs
- HtmlInputCheckBox.cs
- EasingKeyFrames.cs