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
- UnsafeNetInfoNativeMethods.cs
- EventToken.cs
- DataList.cs
- ServiceSettingsResponseInfo.cs
- DocumentPageTextView.cs
- XmlAttributeCollection.cs
- InstanceValue.cs
- RegexWriter.cs
- ButtonAutomationPeer.cs
- GlobalProxySelection.cs
- UndoUnit.cs
- EntityProxyTypeInfo.cs
- RightsManagementInformation.cs
- XamlFilter.cs
- DocumentPaginator.cs
- WpfSharedXamlSchemaContext.cs
- _SafeNetHandles.cs
- XPathNavigatorReader.cs
- DbMetaDataCollectionNames.cs
- COM2ColorConverter.cs
- DatePicker.cs
- SoapExtension.cs
- StylusSystemGestureEventArgs.cs
- TrackBarRenderer.cs
- RadioButton.cs
- WindowsAltTab.cs
- VisualStyleInformation.cs
- EntitySetBase.cs
- peernodeimplementation.cs
- InstanceDescriptor.cs
- LoadedEvent.cs
- BaseParaClient.cs
- SmiXetterAccessMap.cs
- Calendar.cs
- TaskFormBase.cs
- DecoderBestFitFallback.cs
- UrlMappingsSection.cs
- DataObject.cs
- ObjectItemCollection.cs
- LocalizabilityAttribute.cs
- Latin1Encoding.cs
- Parameter.cs
- BasicKeyConstraint.cs
- ConfigurationManagerInternalFactory.cs
- Comparer.cs
- SiteMap.cs
- DecoderFallback.cs
- ComponentSerializationService.cs
- SqlMetaData.cs
- PagePropertiesChangingEventArgs.cs
- SafeReversePInvokeHandle.cs
- CodePageUtils.cs
- PersistenceMetadataNamespace.cs
- ConnectivityStatus.cs
- GregorianCalendar.cs
- DataKeyCollection.cs
- XamlSerializerUtil.cs
- TypeContext.cs
- LogWriteRestartAreaAsyncResult.cs
- AtomParser.cs
- ObjectAssociationEndMapping.cs
- RandomNumberGenerator.cs
- ListenerElementsCollection.cs
- PathSegmentCollection.cs
- ChineseLunisolarCalendar.cs
- ContextMenuAutomationPeer.cs
- OrderByExpression.cs
- PreProcessInputEventArgs.cs
- CodeRemoveEventStatement.cs
- EntityDataSourceConfigureObjectContext.cs
- RuleAction.cs
- ToolStripContentPanelRenderEventArgs.cs
- NodeLabelEditEvent.cs
- Assert.cs
- ButtonField.cs
- ObjectParameterCollection.cs
- MessageSecurityOverTcp.cs
- HttpContextWrapper.cs
- EnumBuilder.cs
- LifetimeServices.cs
- UpdateExpressionVisitor.cs
- OrderingExpression.cs
- QilXmlWriter.cs
- TableRowCollection.cs
- StickyNoteContentControl.cs
- MemberHolder.cs
- COAUTHINFO.cs
- Mutex.cs
- Transactions.cs
- Crc32.cs
- WebPartTransformerCollection.cs
- Button.cs
- Empty.cs
- ObjectAnimationUsingKeyFrames.cs
- ErrorBehavior.cs
- Identifier.cs
- MetadataSource.cs
- BaseParaClient.cs
- ConfigurationHandlersInstallComponent.cs
- DataTableReader.cs