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
- ColorContextHelper.cs
- EncoderBestFitFallback.cs
- LinkUtilities.cs
- CollectionTypeElement.cs
- DataSourceControlBuilder.cs
- SimpleWorkerRequest.cs
- _HeaderInfo.cs
- SettingsBindableAttribute.cs
- SelectedDatesCollection.cs
- ChannelToken.cs
- LocationUpdates.cs
- WebPartConnectionsDisconnectVerb.cs
- BaseValidator.cs
- ValidatorAttribute.cs
- Assert.cs
- XmlHierarchicalDataSourceView.cs
- ReliableOutputConnection.cs
- AutoGeneratedFieldProperties.cs
- ISO2022Encoding.cs
- validation.cs
- NavigationProperty.cs
- PassportAuthenticationModule.cs
- DataGridViewCellStyleConverter.cs
- Point3DCollection.cs
- Buffer.cs
- HtmlFormWrapper.cs
- WorkflowRequestContext.cs
- BitStack.cs
- WebPartZone.cs
- FieldNameLookup.cs
- XmlCodeExporter.cs
- BaseAutoFormat.cs
- DataServiceEntityAttribute.cs
- Compilation.cs
- Border.cs
- ResourceAssociationTypeEnd.cs
- ContainerParaClient.cs
- ExtendedProtectionPolicyElement.cs
- TextTrailingWordEllipsis.cs
- Repeater.cs
- ThreadStateException.cs
- XPathAncestorIterator.cs
- GenericIdentity.cs
- TextElement.cs
- ProviderManager.cs
- ListViewCancelEventArgs.cs
- RectAnimationUsingKeyFrames.cs
- FileUtil.cs
- DeploymentSectionCache.cs
- DecoderNLS.cs
- MatrixCamera.cs
- __Filters.cs
- MarkupCompilePass1.cs
- OleDbInfoMessageEvent.cs
- TextContainerChangeEventArgs.cs
- AssociationSet.cs
- PointF.cs
- ComplexLine.cs
- ExpandSegment.cs
- ListItemConverter.cs
- RenderContext.cs
- APCustomTypeDescriptor.cs
- ClientConfigurationSystem.cs
- WindowsListViewSubItem.cs
- RoleService.cs
- CompilerLocalReference.cs
- FunctionMappingTranslator.cs
- SqlExpander.cs
- DbCommandDefinition.cs
- SafeRegistryHandle.cs
- KeyboardEventArgs.cs
- PatternMatcher.cs
- PropertyIDSet.cs
- SqlParameterizer.cs
- EdmItemCollection.cs
- CaretElement.cs
- TimeoutTimer.cs
- wpf-etw.cs
- ListViewGroup.cs
- ApplicationSecurityManager.cs
- PermissionSetEnumerator.cs
- ErrorStyle.cs
- CompilationRelaxations.cs
- ComponentManagerBroker.cs
- JsonObjectDataContract.cs
- Registry.cs
- TimeoutException.cs
- FacetEnabledSchemaElement.cs
- CmsInterop.cs
- InstanceHandleConflictException.cs
- sqlinternaltransaction.cs
- UnsafeNativeMethods.cs
- XMLSchema.cs
- FormViewAutoFormat.cs
- SystemSounds.cs
- PropertyToken.cs
- RealProxy.cs
- SystemColors.cs
- PropertyOrder.cs
- ActivationWorker.cs