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
- PointLight.cs
- MethodImplAttribute.cs
- TriState.cs
- MailHeaderInfo.cs
- Selection.cs
- Rect.cs
- SignatureDescription.cs
- AutomationPropertyInfo.cs
- WsiProfilesElementCollection.cs
- TransformCollection.cs
- SectionInput.cs
- EditorZoneBase.cs
- MouseButton.cs
- SimpleType.cs
- WebControl.cs
- NumberSubstitution.cs
- LogicalMethodInfo.cs
- UnmanagedMemoryStreamWrapper.cs
- EllipticalNodeOperations.cs
- DbProviderServices.cs
- SqlDesignerDataSourceView.cs
- ProcessInfo.cs
- WebPartHeaderCloseVerb.cs
- VariableQuery.cs
- RelatedCurrencyManager.cs
- BitStack.cs
- AddingNewEventArgs.cs
- ExceptionValidationRule.cs
- ColorDialog.cs
- SqlDataSourceConfigureSelectPanel.cs
- PropertyGrid.cs
- Highlights.cs
- ComponentCommands.cs
- PDBReader.cs
- CacheVirtualItemsEvent.cs
- TransformCryptoHandle.cs
- InheritablePropertyChangeInfo.cs
- NavigatingCancelEventArgs.cs
- _ConnectionGroup.cs
- XD.cs
- XmlILConstructAnalyzer.cs
- UrlAuthorizationModule.cs
- DispatcherBuilder.cs
- XhtmlBasicPanelAdapter.cs
- DaylightTime.cs
- CompiledRegexRunnerFactory.cs
- VirtualPath.cs
- ISessionStateStore.cs
- EntityDataSourceColumn.cs
- HttpContextServiceHost.cs
- DBNull.cs
- ZipFileInfoCollection.cs
- FormatterConverter.cs
- COM2PropertyDescriptor.cs
- EntityObject.cs
- COAUTHINFO.cs
- SBCSCodePageEncoding.cs
- WebPartTransformerCollection.cs
- ColorMap.cs
- DependencyObjectType.cs
- LinkArea.cs
- SystemWebCachingSectionGroup.cs
- Sequence.cs
- WindowsAuthenticationModule.cs
- SkinBuilder.cs
- ConsoleCancelEventArgs.cs
- TriggerAction.cs
- XmlTextAttribute.cs
- DetailsViewCommandEventArgs.cs
- TypedRowHandler.cs
- PrimitiveType.cs
- dtdvalidator.cs
- CodeGen.cs
- FileDialog.cs
- TextTrailingWordEllipsis.cs
- UIElementCollection.cs
- ButtonRenderer.cs
- assemblycache.cs
- MouseButtonEventArgs.cs
- WindowsListViewItemCheckBox.cs
- StrokeNodeData.cs
- SecurityAccessDeniedException.cs
- Int32Collection.cs
- IDReferencePropertyAttribute.cs
- WSSecureConversationDec2005.cs
- ChtmlTextWriter.cs
- basenumberconverter.cs
- sqlinternaltransaction.cs
- PagesChangedEventArgs.cs
- ClientFormsIdentity.cs
- XmlDomTextWriter.cs
- BitmapFrameDecode.cs
- WhitespaceRuleReader.cs
- GlobalProxySelection.cs
- BamlTreeUpdater.cs
- WindowsRebar.cs
- BasicCellRelation.cs
- AssemblyBuilderData.cs
- Parameter.cs
- DataContractJsonSerializerOperationFormatter.cs