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
- Clipboard.cs
- Page.cs
- ManipulationDevice.cs
- DropDownButton.cs
- FlatButtonAppearance.cs
- ApplicationServicesHostFactory.cs
- MediaTimeline.cs
- PeerCustomResolverSettings.cs
- RowUpdatedEventArgs.cs
- StringInfo.cs
- UnionExpr.cs
- XmlWrappingWriter.cs
- TimeSpanValidatorAttribute.cs
- SQLString.cs
- Container.cs
- GeneralTransform3DCollection.cs
- ConnectionManagementSection.cs
- HitTestFilterBehavior.cs
- CodeDelegateCreateExpression.cs
- XPathDocumentNavigator.cs
- ClearCollection.cs
- CacheMemory.cs
- MemberMaps.cs
- SortQuery.cs
- ZoneLinkButton.cs
- AlternationConverter.cs
- SqlConnectionPoolGroupProviderInfo.cs
- DataGridTableCollection.cs
- ResourceContainerWrapper.cs
- WebSysDisplayNameAttribute.cs
- WmlPanelAdapter.cs
- FileVersionInfo.cs
- FormsAuthenticationUserCollection.cs
- Point4DConverter.cs
- ModuleElement.cs
- MergeFailedEvent.cs
- HttpWebRequestElement.cs
- HTMLTagNameToTypeMapper.cs
- XmlSchemaAnyAttribute.cs
- VectorCollectionConverter.cs
- MailSettingsSection.cs
- OfTypeExpression.cs
- DataTableReaderListener.cs
- XmlC14NWriter.cs
- mongolianshape.cs
- WindowsScrollBarBits.cs
- NonClientArea.cs
- Vector3DAnimationUsingKeyFrames.cs
- LineProperties.cs
- AdornerPresentationContext.cs
- OdbcErrorCollection.cs
- ErrorHandler.cs
- InfoCard.cs
- CollectionChange.cs
- MultiSelector.cs
- OutputCacheProfile.cs
- NameValueCollection.cs
- NavigationHelper.cs
- XPathBuilder.cs
- HasActivatableWorkflowEvent.cs
- XmlSerializationGeneratedCode.cs
- WorkflowMessageEventHandler.cs
- AuthStoreRoleProvider.cs
- SingleStorage.cs
- BulletChrome.cs
- Token.cs
- SignedXmlDebugLog.cs
- EventLog.cs
- StrokeCollectionDefaultValueFactory.cs
- QuaternionRotation3D.cs
- WriteTimeStream.cs
- DataGridViewCellStateChangedEventArgs.cs
- WindowPattern.cs
- SamlDelegatingWriter.cs
- DataQuery.cs
- Variant.cs
- StateDesigner.cs
- MailSettingsSection.cs
- PersonalizablePropertyEntry.cs
- TypeConverterValueSerializer.cs
- AccessViolationException.cs
- UnsafeNativeMethods.cs
- StrongNameMembershipCondition.cs
- DataSourceHelper.cs
- XmlObjectSerializerWriteContextComplexJson.cs
- ToolStripContentPanelRenderEventArgs.cs
- OracleCommandSet.cs
- ListSortDescription.cs
- SelectionProcessor.cs
- DataGridViewCellParsingEventArgs.cs
- RegexStringValidatorAttribute.cs
- ColorContextHelper.cs
- WindowsProgressbar.cs
- ElementProxy.cs
- SystemNetHelpers.cs
- XmlDataCollection.cs
- CodeEventReferenceExpression.cs
- XmlIlVisitor.cs
- ItemContainerGenerator.cs
- ECDiffieHellmanPublicKey.cs