Code:
/ DotNET / DotNET / 8.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
- XmlTextReader.cs
- ProfileGroupSettings.cs
- SaveFileDialog.cs
- EventKeyword.cs
- SecurityManager.cs
- Error.cs
- SizeAnimationBase.cs
- Point3DConverter.cs
- ToolStripPanelCell.cs
- MessageSecurityProtocol.cs
- TableChangeProcessor.cs
- WindowsStartMenu.cs
- WinEventTracker.cs
- hresults.cs
- printdlgexmarshaler.cs
- DataGridViewDesigner.cs
- ExtendedPropertyCollection.cs
- HyperLinkStyle.cs
- HttpRequestMessageProperty.cs
- SingleStorage.cs
- TabControlCancelEvent.cs
- SystemDropShadowChrome.cs
- WindowsTokenRoleProvider.cs
- TreeViewCancelEvent.cs
- Subordinate.cs
- FormsAuthenticationCredentials.cs
- SqlMethodCallConverter.cs
- MultiPropertyDescriptorGridEntry.cs
- RemoteWebConfigurationHostServer.cs
- NestedContainer.cs
- ScriptingProfileServiceSection.cs
- FilterException.cs
- WebPartChrome.cs
- SapiRecoContext.cs
- HtmlTableCellCollection.cs
- TextEncodedRawTextWriter.cs
- StringResourceManager.cs
- TCEAdapterGenerator.cs
- SystemInformation.cs
- IconBitmapDecoder.cs
- ToolBarPanel.cs
- Base64Stream.cs
- FontWeight.cs
- DoubleAnimationUsingKeyFrames.cs
- XmlImplementation.cs
- DiagnosticTraceSource.cs
- TraceData.cs
- AuthenticationConfig.cs
- controlskin.cs
- EntitySqlQueryState.cs
- TraceHandler.cs
- TickBar.cs
- OperatorExpressions.cs
- MultipleViewProviderWrapper.cs
- FrameworkEventSource.cs
- PingOptions.cs
- OLEDB_Enum.cs
- MenuItemBindingCollection.cs
- EndpointConfigContainer.cs
- CreateUserWizard.cs
- MethodBody.cs
- AuthStoreRoleProvider.cs
- SoapSchemaExporter.cs
- CodeConstructor.cs
- XmlDocumentSerializer.cs
- InputScopeAttribute.cs
- GeometryHitTestResult.cs
- CancelEventArgs.cs
- XmlSchemaInclude.cs
- BadImageFormatException.cs
- DropSource.cs
- ReadOnlyActivityGlyph.cs
- SQLBytes.cs
- SqlNodeAnnotations.cs
- AttributeTable.cs
- MonikerProxyAttribute.cs
- SoapReflectionImporter.cs
- StateElementCollection.cs
- WebPartCloseVerb.cs
- RepeaterItemEventArgs.cs
- DbParameterCollection.cs
- WCFModelStrings.Designer.cs
- unitconverter.cs
- ExceptionHandler.cs
- SystemEvents.cs
- LineServices.cs
- XmlWriter.cs
- _Rfc2616CacheValidators.cs
- AssemblyAttributes.cs
- InternalConfigEventArgs.cs
- ExceptionUtility.cs
- ProgressPage.cs
- HyperLinkStyle.cs
- followingsibling.cs
- HtmlHistory.cs
- TableItemPattern.cs
- AutoResetEvent.cs
- ColorTranslator.cs
- UpdatePanelTrigger.cs
- dtdvalidator.cs