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
- RenderContext.cs
- Int32Storage.cs
- OracleConnection.cs
- TypeSystem.cs
- XmlTextWriter.cs
- ClientRuntimeConfig.cs
- BitmapDownload.cs
- DeviceContext.cs
- ContextQuery.cs
- FormCollection.cs
- RequestContext.cs
- HelpKeywordAttribute.cs
- ExtendLockAsyncResult.cs
- ParagraphVisual.cs
- TCEAdapterGenerator.cs
- TextElementCollection.cs
- Point3D.cs
- ValidationRuleCollection.cs
- MarkupCompilePass2.cs
- EntityDataSourceContainerNameItem.cs
- TouchesOverProperty.cs
- CatalogPart.cs
- ParallelQuery.cs
- XmlAnyAttributeAttribute.cs
- ProviderConnectionPoint.cs
- XmlChildNodes.cs
- ThaiBuddhistCalendar.cs
- IPAddressCollection.cs
- LambdaExpression.cs
- AssociativeAggregationOperator.cs
- HeaderedItemsControl.cs
- WindowsHyperlink.cs
- ToolStripRenderEventArgs.cs
- AsyncCompletedEventArgs.cs
- Internal.cs
- EntityModelSchemaGenerator.cs
- LineMetrics.cs
- GB18030Encoding.cs
- BlockingCollection.cs
- ValidatedControlConverter.cs
- SQLBytesStorage.cs
- DesignerTransactionCloseEvent.cs
- OperatingSystem.cs
- ListViewTableRow.cs
- ValidatedControlConverter.cs
- CuspData.cs
- XmlDictionaryReaderQuotas.cs
- HMACRIPEMD160.cs
- AssociationType.cs
- WindowsGraphics2.cs
- DataSysAttribute.cs
- MediaContextNotificationWindow.cs
- Cursors.cs
- DataControlFieldCell.cs
- AbstractSvcMapFileLoader.cs
- ReadingWritingEntityEventArgs.cs
- rsa.cs
- ConfigXmlElement.cs
- EntityDataSourceReferenceGroup.cs
- StringUtil.cs
- ListSortDescription.cs
- FixedSOMImage.cs
- HybridDictionary.cs
- Light.cs
- Array.cs
- Queue.cs
- TreeNodeCollection.cs
- OleDbCommand.cs
- AsyncSerializedWorker.cs
- BaseUriHelper.cs
- RequestSecurityTokenForGetBrowserToken.cs
- HttpCachePolicyElement.cs
- UnionCodeGroup.cs
- externdll.cs
- EditorBrowsableAttribute.cs
- ParagraphVisual.cs
- PassportAuthenticationEventArgs.cs
- SoapDocumentMethodAttribute.cs
- ClientProxyGenerator.cs
- Descriptor.cs
- ZoneLinkButton.cs
- DetailsViewCommandEventArgs.cs
- LoginName.cs
- Panel.cs
- MultiView.cs
- SafeNativeMethods.cs
- LicenseProviderAttribute.cs
- XmlnsDefinitionAttribute.cs
- ValueTable.cs
- TagPrefixAttribute.cs
- DBSqlParserColumn.cs
- RepeaterItemEventArgs.cs
- DefaultPrintController.cs
- UxThemeWrapper.cs
- KeyInfo.cs
- SqlLiftIndependentRowExpressions.cs
- StyleXamlParser.cs
- ProtocolsConfigurationEntry.cs
- AssertFilter.cs
- LinkClickEvent.cs