Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / fx / src / CompMod / System / Diagnostics / TraceUtils.cs / 1 / 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; namespace System.Diagnostics { internal static class TraceUtils { 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 (IsOwnedTextWriterTL(objectType)) throw new ConfigurationErrorsException(SR.GetString(SR.TextWriterTL_DefaultConstructor_NotSupported)); // 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 = ctorInfo.Invoke(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 = ctorInfo.Invoke(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
- PeerNameRecordCollection.cs
- NativeMethods.cs
- ParameterBuilder.cs
- WindowsBrush.cs
- StructuralType.cs
- XmlReflectionMember.cs
- ShapingWorkspace.cs
- UdpConstants.cs
- BitmapDownload.cs
- OleDbInfoMessageEvent.cs
- HuffModule.cs
- RijndaelManaged.cs
- DefaultPropertiesToSend.cs
- TouchFrameEventArgs.cs
- CodeCatchClause.cs
- XmlLoader.cs
- Animatable.cs
- XmlSerializableServices.cs
- XmlSchemaSubstitutionGroup.cs
- ParameterReplacerVisitor.cs
- NullableLongSumAggregationOperator.cs
- BamlLocalizabilityResolver.cs
- TransactionFlowProperty.cs
- sqlpipe.cs
- NativeMethods.cs
- LocalizabilityAttribute.cs
- CqlBlock.cs
- ZipIOExtraFieldPaddingElement.cs
- FormatSelectingMessageInspector.cs
- EventlogProvider.cs
- TextDecorationCollectionConverter.cs
- TTSEngineTypes.cs
- DataContractSerializer.cs
- NumericExpr.cs
- ConsumerConnectionPoint.cs
- EntityProxyTypeInfo.cs
- OdbcConnectionFactory.cs
- ImageListStreamer.cs
- GeometryDrawing.cs
- SecureEnvironment.cs
- SelectionEditingBehavior.cs
- PositiveTimeSpanValidatorAttribute.cs
- ImageUrlEditor.cs
- SequentialWorkflowRootDesigner.cs
- BitmapEffectState.cs
- exports.cs
- SwitchElementsCollection.cs
- IndependentlyAnimatedPropertyMetadata.cs
- TileBrush.cs
- SqlDataSourceSelectingEventArgs.cs
- MDIClient.cs
- SQLInt16.cs
- XmlAttributes.cs
- TableItemPatternIdentifiers.cs
- Brushes.cs
- UDPClient.cs
- RadioButtonRenderer.cs
- XsltFunctions.cs
- DbProviderFactoriesConfigurationHandler.cs
- TextTreeUndo.cs
- BaseCollection.cs
- Registry.cs
- XmlObjectSerializerReadContextComplex.cs
- BroadcastEventHelper.cs
- TreeNodeBindingDepthConverter.cs
- EndpointAddressMessageFilterTable.cs
- WebPartVerbCollection.cs
- ColorConvertedBitmapExtension.cs
- MailAddress.cs
- ServiceNameElement.cs
- AssemblyCollection.cs
- TransformGroup.cs
- WindowsRebar.cs
- ResolveNextArgumentWorkItem.cs
- DataGridViewCellConverter.cs
- AutomationPatternInfo.cs
- TypedReference.cs
- X509Extension.cs
- StateMachineAction.cs
- RequiredFieldValidator.cs
- CodeRemoveEventStatement.cs
- HtmlMeta.cs
- SoapElementAttribute.cs
- ReadOnlyHierarchicalDataSourceView.cs
- SmiEventSink_DeferedProcessing.cs
- CompilerCollection.cs
- DataGridAutoGeneratingColumnEventArgs.cs
- LabelTarget.cs
- AccessViolationException.cs
- TableRow.cs
- DataGridViewAutoSizeColumnModeEventArgs.cs
- _TransmitFileOverlappedAsyncResult.cs
- XmlQueryRuntime.cs
- ReaderOutput.cs
- ReflectionHelper.cs
- AuthenticatedStream.cs
- ThreadPool.cs
- NullRuntimeConfig.cs
- StorageConditionPropertyMapping.cs
- Rule.cs