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
- PropertyMappingExceptionEventArgs.cs
- MessageSecurityOverMsmq.cs
- SoundPlayerAction.cs
- ModuleBuilder.cs
- WebPartVerb.cs
- ObjectAssociationEndMapping.cs
- _BaseOverlappedAsyncResult.cs
- EncoderFallback.cs
- CaretElement.cs
- FontFaceLayoutInfo.cs
- WebPartEditorCancelVerb.cs
- Update.cs
- SymDocumentType.cs
- ToolStripItemTextRenderEventArgs.cs
- XmlObjectSerializerWriteContext.cs
- PerformanceCounter.cs
- ConstraintStruct.cs
- DelegateSerializationHolder.cs
- SByte.cs
- TypeBuilderInstantiation.cs
- HotSpotCollectionEditor.cs
- ViewBox.cs
- PatternMatcher.cs
- TypeDelegator.cs
- Pkcs7Signer.cs
- Style.cs
- BitmapEncoder.cs
- TimeZoneInfo.cs
- COM2PropertyPageUITypeConverter.cs
- SqlDataSourceQueryEditor.cs
- WebHeaderCollection.cs
- LiteralDesigner.cs
- PropertyDescriptorCollection.cs
- UnsafeNativeMethods.cs
- LinkClickEvent.cs
- DataGridViewRowStateChangedEventArgs.cs
- DataGridViewUtilities.cs
- DbConnectionStringBuilder.cs
- XmlSignatureProperties.cs
- ItemMap.cs
- XmlChildEnumerator.cs
- MexBindingElement.cs
- DelegatingTypeDescriptionProvider.cs
- SatelliteContractVersionAttribute.cs
- LoadGrammarCompletedEventArgs.cs
- TransformerInfoCollection.cs
- OwnerDrawPropertyBag.cs
- SqlDataSourceStatusEventArgs.cs
- ParameterModifier.cs
- SimpleType.cs
- ObjectDataSourceMethodEventArgs.cs
- ScrollViewerAutomationPeer.cs
- SslStream.cs
- DeclarativeConditionsCollection.cs
- TextTreeInsertUndoUnit.cs
- DataGridViewRowErrorTextNeededEventArgs.cs
- ListView.cs
- RuleRef.cs
- RectAnimationBase.cs
- SimpleNameService.cs
- SqlDataSource.cs
- _CommandStream.cs
- Deflater.cs
- SQLMoneyStorage.cs
- TypeSystem.cs
- BaseDataBoundControl.cs
- BoundColumn.cs
- ToolBarButtonDesigner.cs
- XAMLParseException.cs
- QueryableFilterRepeater.cs
- WebRequest.cs
- XmlSchemaSimpleTypeRestriction.cs
- KeyNotFoundException.cs
- TextElementEnumerator.cs
- ObjectPersistData.cs
- UInt16.cs
- SymbolType.cs
- WebConfigurationManager.cs
- PermissionAttributes.cs
- TrueReadOnlyCollection.cs
- RoutedEventValueSerializer.cs
- UIElement3D.cs
- ExceptionValidationRule.cs
- SqlCharStream.cs
- KeyInterop.cs
- TextReader.cs
- CodeConstructor.cs
- InitiatorSessionSymmetricMessageSecurityProtocol.cs
- LinkedList.cs
- TriggerActionCollection.cs
- ComponentEditorPage.cs
- HttpClientProtocol.cs
- GradientStop.cs
- AppliedDeviceFiltersDialog.cs
- PrivateUnsafeNativeCompoundFileMethods.cs
- XmlILCommand.cs
- _SslState.cs
- EventProviderWriter.cs
- PriorityRange.cs
- LinkedResourceCollection.cs