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
- Trigger.cs
- HttpCacheParams.cs
- WebPartVerbsEventArgs.cs
- QilLoop.cs
- TypeHelper.cs
- DependencyPropertyConverter.cs
- ADRole.cs
- XPathDocument.cs
- DocumentApplicationJournalEntry.cs
- CqlQuery.cs
- RecommendedAsConfigurableAttribute.cs
- CompiledXpathExpr.cs
- AmbiguousMatchException.cs
- brushes.cs
- SpellerError.cs
- SignatureResourcePool.cs
- DigitShape.cs
- TableRowCollection.cs
- BamlVersionHeader.cs
- SqlDependency.cs
- CollectionEditVerbManager.cs
- MessageQueueInstaller.cs
- InputProcessorProfilesLoader.cs
- JulianCalendar.cs
- CheckBoxPopupAdapter.cs
- GenericWebPart.cs
- PauseStoryboard.cs
- Context.cs
- RSAPKCS1SignatureFormatter.cs
- ValidationRuleCollection.cs
- ConnectionProviderAttribute.cs
- KoreanCalendar.cs
- Application.cs
- ExecutedRoutedEventArgs.cs
- ITreeGenerator.cs
- PathGradientBrush.cs
- Style.cs
- EntityDataSourceState.cs
- IdentityManager.cs
- ForeignKeyFactory.cs
- ObjectViewFactory.cs
- HttpContextBase.cs
- HttpResponseInternalWrapper.cs
- HttpWebRequestElement.cs
- EmbeddedMailObjectsCollection.cs
- DataContext.cs
- Repeater.cs
- TypePropertyEditor.cs
- RuntimeWrappedException.cs
- SafeProcessHandle.cs
- ISCIIEncoding.cs
- UrlAuthorizationModule.cs
- GridViewColumnHeaderAutomationPeer.cs
- HideDisabledControlAdapter.cs
- UserPersonalizationStateInfo.cs
- RelationshipEndCollection.cs
- StdValidatorsAndConverters.cs
- XNodeNavigator.cs
- PeerCollaboration.cs
- SchemaImporterExtensionElement.cs
- returneventsaver.cs
- Helper.cs
- XsdBuildProvider.cs
- Attributes.cs
- XamlUtilities.cs
- TextEditorCopyPaste.cs
- RegexFCD.cs
- DependencyPropertyHelper.cs
- SqlCachedBuffer.cs
- WinFormsComponentEditor.cs
- WebPartChrome.cs
- CallbackBehaviorAttribute.cs
- PropertyValidationContext.cs
- CurrentChangingEventManager.cs
- DataFormat.cs
- ScriptHandlerFactory.cs
- DataViewManagerListItemTypeDescriptor.cs
- sqlcontext.cs
- PrintPreviewDialog.cs
- CollectionViewProxy.cs
- DiscoveryReference.cs
- XmlSchemaSimpleContent.cs
- HostVisual.cs
- Exception.cs
- XmlTextReaderImplHelpers.cs
- SelfIssuedAuthProofToken.cs
- OleDbPropertySetGuid.cs
- WasNotInstalledException.cs
- IntegerValidator.cs
- FileAccessException.cs
- TrustManagerMoreInformation.cs
- AddInDeploymentState.cs
- RuleElement.cs
- ControlValuePropertyAttribute.cs
- Deflater.cs
- shaper.cs
- DbException.cs
- RunWorkerCompletedEventArgs.cs
- BamlMapTable.cs
- DataSvcMapFile.cs