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
- SignatureHelper.cs
- Oci.cs
- CloudCollection.cs
- DataSourceCache.cs
- MenuItemBinding.cs
- SrgsRuleRef.cs
- Int16Animation.cs
- ListCollectionView.cs
- UserControlParser.cs
- CompressEmulationStream.cs
- Site.cs
- GlyphRunDrawing.cs
- ClientCultureInfo.cs
- ProcessInfo.cs
- _DisconnectOverlappedAsyncResult.cs
- SemanticAnalyzer.cs
- SupportsEventValidationAttribute.cs
- DescendantBaseQuery.cs
- PropertyFilterAttribute.cs
- XPathBinder.cs
- GZipObjectSerializer.cs
- InstanceCollisionException.cs
- xsdvalidator.cs
- ResXResourceReader.cs
- SystemFonts.cs
- ClickablePoint.cs
- DetailsViewInsertedEventArgs.cs
- CodeMemberMethod.cs
- sqlmetadatafactory.cs
- CharEntityEncoderFallback.cs
- AnimationException.cs
- _NestedMultipleAsyncResult.cs
- PreviewPageInfo.cs
- PieceNameHelper.cs
- TrackingParameters.cs
- ServiceContractListItem.cs
- DataGridViewSortCompareEventArgs.cs
- FileSystemEventArgs.cs
- XMLSchema.cs
- PolyLineSegment.cs
- BindingOperations.cs
- OdbcFactory.cs
- SoapHttpTransportImporter.cs
- ThemeConfigurationDialog.cs
- SingleObjectCollection.cs
- Maps.cs
- SiteMapProvider.cs
- KeyManager.cs
- AdapterDictionary.cs
- EncryptedPackage.cs
- Win32MouseDevice.cs
- CodeFieldReferenceExpression.cs
- AssemblyNameProxy.cs
- MatrixAnimationUsingPath.cs
- XmlComplianceUtil.cs
- ByteAnimation.cs
- DbParameterCollectionHelper.cs
- SQLBinary.cs
- DataGridViewTopLeftHeaderCell.cs
- VerificationException.cs
- CompositeFontInfo.cs
- ExecutionScope.cs
- HitTestResult.cs
- ReadOnlyCollection.cs
- Roles.cs
- ProjectionPathSegment.cs
- HttpListenerPrefixCollection.cs
- FileLogRecord.cs
- documentation.cs
- ListViewEditEventArgs.cs
- WasNotInstalledException.cs
- SafePointer.cs
- ProfileService.cs
- InputScope.cs
- SplineKeyFrames.cs
- EmulateRecognizeCompletedEventArgs.cs
- MimeTypeAttribute.cs
- DbConnectionStringBuilder.cs
- PngBitmapEncoder.cs
- versioninfo.cs
- ApplicationSecurityInfo.cs
- HostingEnvironment.cs
- FormViewDeleteEventArgs.cs
- FileLevelControlBuilderAttribute.cs
- InternalMappingException.cs
- DataTableReaderListener.cs
- RbTree.cs
- Calendar.cs
- StylusButtonEventArgs.cs
- IsolatedStoragePermission.cs
- LayoutExceptionEventArgs.cs
- ListenerChannelContext.cs
- SqlConnectionHelper.cs
- FamilyCollection.cs
- ContentOnlyMessage.cs
- XmlDataSource.cs
- CompensationDesigner.cs
- MemberMaps.cs
- TypeLibConverter.cs
- RunClient.cs