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
- XhtmlBasicTextBoxAdapter.cs
- Processor.cs
- WindowPattern.cs
- WebPartConnectVerb.cs
- EnvelopedSignatureTransform.cs
- StandardCommands.cs
- RequestResizeEvent.cs
- WindowsListViewGroup.cs
- RelationalExpressions.cs
- FontSource.cs
- CryptoApi.cs
- VisualStateManager.cs
- QueueProcessor.cs
- BoundColumn.cs
- MainMenu.cs
- JoinGraph.cs
- PathSegmentCollection.cs
- SpeakCompletedEventArgs.cs
- ImageListStreamer.cs
- ProgressBarRenderer.cs
- AssociationEndMember.cs
- Stream.cs
- ConnectionsZone.cs
- ObjectSpanRewriter.cs
- securitycriticaldataClass.cs
- TemplateParser.cs
- StateChangeEvent.cs
- TraceSwitch.cs
- CardSpacePolicyElement.cs
- ICspAsymmetricAlgorithm.cs
- RuntimeVariablesExpression.cs
- LineServicesRun.cs
- FreezableDefaultValueFactory.cs
- XsltOutput.cs
- TriState.cs
- ManagementEventWatcher.cs
- PathSegment.cs
- ALinqExpressionVisitor.cs
- FontFaceLayoutInfo.cs
- PrintPageEvent.cs
- ItemsChangedEventArgs.cs
- LifetimeServices.cs
- TreeSet.cs
- WhiteSpaceTrimStringConverter.cs
- BehaviorEditorPart.cs
- DataGridViewTextBoxColumn.cs
- CommandField.cs
- PeerCollaborationPermission.cs
- Misc.cs
- DiscoveryClientProtocol.cs
- FocusChangedEventArgs.cs
- remotingproxy.cs
- FocusWithinProperty.cs
- TextEffectCollection.cs
- EntityParameterCollection.cs
- SequentialWorkflowHeaderFooter.cs
- HttpCapabilitiesSectionHandler.cs
- OptionalColumn.cs
- DocobjHost.cs
- DSACryptoServiceProvider.cs
- FileDataSourceCache.cs
- MessageLoggingFilterTraceRecord.cs
- XmlAnyElementAttribute.cs
- ValueQuery.cs
- BitmapEffectCollection.cs
- CodeVariableReferenceExpression.cs
- BamlWriter.cs
- DateTimeOffsetConverter.cs
- listviewsubitemcollectioneditor.cs
- HttpInputStream.cs
- VarRemapper.cs
- ByteConverter.cs
- URL.cs
- DoubleUtil.cs
- XamlStyleSerializer.cs
- RuntimeEnvironment.cs
- StyleSheetDesigner.cs
- XmlObjectSerializerWriteContextComplex.cs
- DataServiceQueryProvider.cs
- DockingAttribute.cs
- HtmlTextArea.cs
- QilExpression.cs
- ISO2022Encoding.cs
- SqlGatherConsumedAliases.cs
- CompilerState.cs
- SweepDirectionValidation.cs
- ErrorStyle.cs
- RawKeyboardInputReport.cs
- WindowsRegion.cs
- ComponentDispatcherThread.cs
- HttpCachePolicyWrapper.cs
- TypeUtil.cs
- ColumnBinding.cs
- CommonProperties.cs
- DataSetSchema.cs
- Lasso.cs
- TypeConvertions.cs
- NameSpaceEvent.cs
- Statements.cs
- ComponentFactoryHelpers.cs