Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / 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// 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
- XmlAttributes.cs
- JavaScriptSerializer.cs
- LassoHelper.cs
- XmlAttributes.cs
- TypeDependencyAttribute.cs
- SafeNativeMethods.cs
- ImageAnimator.cs
- ControlParameter.cs
- GroupByExpressionRewriter.cs
- BindingCompleteEventArgs.cs
- NameValueFileSectionHandler.cs
- PersianCalendar.cs
- EventSinkActivity.cs
- CodeDomConfigurationHandler.cs
- FixUp.cs
- ListViewAutomationPeer.cs
- DataGridViewCellStateChangedEventArgs.cs
- DataGridViewCellPaintingEventArgs.cs
- ActionFrame.cs
- RepeatInfo.cs
- ACE.cs
- COAUTHINFO.cs
- ZipFileInfo.cs
- RemotingServices.cs
- PrivilegeNotHeldException.cs
- CodeSnippetStatement.cs
- ModelItemCollection.cs
- HtmlLinkAdapter.cs
- Light.cs
- PlatformNotSupportedException.cs
- OutputCacheModule.cs
- AnnotationObservableCollection.cs
- DependencyPropertyKey.cs
- CodeDefaultValueExpression.cs
- Pens.cs
- TextAdaptor.cs
- MD5Cng.cs
- SR.cs
- HttpVersion.cs
- UnsafeNativeMethods.cs
- PingOptions.cs
- OdbcStatementHandle.cs
- InstanceLockQueryResult.cs
- ErrorRuntimeConfig.cs
- AssemblyName.cs
- RepeatButtonAutomationPeer.cs
- CfgSemanticTag.cs
- MsmqIntegrationSecurityMode.cs
- Track.cs
- MimeMapping.cs
- SqlFlattener.cs
- SQLGuidStorage.cs
- AccessibleObject.cs
- OperatingSystem.cs
- IssuanceLicense.cs
- Propagator.JoinPropagator.JoinPredicateVisitor.cs
- unitconverter.cs
- WebRequestModulesSection.cs
- ZoneLinkButton.cs
- ReflectionHelper.cs
- LayoutInformation.cs
- ConnectionStringsExpressionBuilder.cs
- GeometryConverter.cs
- PrintPreviewGraphics.cs
- SocketElement.cs
- MenuStrip.cs
- ReferencedCollectionType.cs
- WaitForChangedResult.cs
- KeyEvent.cs
- TripleDESCryptoServiceProvider.cs
- SecureUICommand.cs
- SortDescription.cs
- CaseStatementSlot.cs
- AsyncOperation.cs
- TriggerActionCollection.cs
- DesignerTransaction.cs
- Parameter.cs
- TextEditorTyping.cs
- DragStartedEventArgs.cs
- PartitionedStream.cs
- PublishLicense.cs
- CompositeCollection.cs
- WindowsGrip.cs
- PipelineModuleStepContainer.cs
- DoubleConverter.cs
- FutureFactory.cs
- RealProxy.cs
- PolicyManager.cs
- XmlSchemaComplexContentExtension.cs
- Expander.cs
- TextEditorThreadLocalStore.cs
- FastPropertyAccessor.cs
- FamilyTypefaceCollection.cs
- ToolStripControlHost.cs
- ThreadAbortException.cs
- SqlWriter.cs
- FolderBrowserDialogDesigner.cs
- Graph.cs
- DoubleCollectionValueSerializer.cs
- DBBindings.cs