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
- WindowsFormsLinkLabel.cs
- CallTemplateAction.cs
- BasePattern.cs
- ForceCopyBuildProvider.cs
- AddInContractAttribute.cs
- CapacityStreamGeometryContext.cs
- BindableAttribute.cs
- SoundPlayerAction.cs
- ClientSettings.cs
- HttpCapabilitiesBase.cs
- DataSourceSelectArguments.cs
- PhysicalAddress.cs
- TextModifier.cs
- GridViewPageEventArgs.cs
- MobileControlPersister.cs
- FeatureManager.cs
- FormsAuthenticationModule.cs
- StreamReader.cs
- StateManager.cs
- NumericExpr.cs
- DataServiceQueryOfT.cs
- TextBoxAutoCompleteSourceConverter.cs
- VerificationException.cs
- ScalarConstant.cs
- dataSvcMapFileLoader.cs
- NegatedCellConstant.cs
- ReferenceTypeElement.cs
- DataSourceSelectArguments.cs
- JsonGlobals.cs
- EventItfInfo.cs
- RightsManagementEncryptionTransform.cs
- ScriptBehaviorDescriptor.cs
- ControlPersister.cs
- PolicyLevel.cs
- ThreadAbortException.cs
- ExpressionLexer.cs
- AutoResetEvent.cs
- XmlSchemaSubstitutionGroup.cs
- ToolStripPanelRow.cs
- SecurityCapabilities.cs
- Site.cs
- DesignerVerb.cs
- AuthenticationException.cs
- BitHelper.cs
- Light.cs
- TextFormatterImp.cs
- HiddenFieldPageStatePersister.cs
- ConfigurationPropertyAttribute.cs
- XamlInt32CollectionSerializer.cs
- PtsHost.cs
- Trace.cs
- Block.cs
- GenericIdentity.cs
- HttpWebRequest.cs
- StringFormat.cs
- BooleanAnimationBase.cs
- RowToParametersTransformer.cs
- Themes.cs
- CheckBox.cs
- DllNotFoundException.cs
- SerializationEventsCache.cs
- DetailsView.cs
- RuleSettings.cs
- Int64Animation.cs
- DateTimeUtil.cs
- Form.cs
- XmlNodeWriter.cs
- Interop.cs
- EventListener.cs
- ToolbarAUtomationPeer.cs
- ContentHostHelper.cs
- wgx_exports.cs
- CodeVariableDeclarationStatement.cs
- CollectionContainer.cs
- SEHException.cs
- SecurityHeader.cs
- TableLayout.cs
- CachedPathData.cs
- Control.cs
- ImageDrawing.cs
- DrawingImage.cs
- TransportSecurityHelpers.cs
- XmlDataSourceView.cs
- SqlCacheDependencyDatabase.cs
- HttpResponseHeader.cs
- ImageListImageEditor.cs
- ImageMapEventArgs.cs
- DataControlFieldHeaderCell.cs
- SolidColorBrush.cs
- SqlUserDefinedAggregateAttribute.cs
- TextParagraphCache.cs
- PrintPreviewDialog.cs
- SelectionItemProviderWrapper.cs
- CommandTreeTypeHelper.cs
- CollectionBuilder.cs
- FrameworkTemplate.cs
- StaticExtensionConverter.cs
- TripleDES.cs
- ConfigurationException.cs
- Vector3DConverter.cs