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
- WebPartZone.cs
- CachedTypeface.cs
- FormsAuthentication.cs
- XsltOutput.cs
- FilterEventArgs.cs
- GraphicsPathIterator.cs
- lengthconverter.cs
- WebCategoryAttribute.cs
- TypeSystem.cs
- EmptyEnumerable.cs
- ValueChangedEventManager.cs
- BaseParaClient.cs
- AsyncPostBackErrorEventArgs.cs
- SendMailErrorEventArgs.cs
- WinInet.cs
- BufferBuilder.cs
- UserControlBuildProvider.cs
- DocumentGridPage.cs
- RegexEditorDialog.cs
- QilDataSource.cs
- RepeatEnumerable.cs
- EtwTrace.cs
- DrawingGroup.cs
- HierarchicalDataSourceDesigner.cs
- TabPanel.cs
- ReferenceSchema.cs
- SqlUserDefinedTypeAttribute.cs
- _ScatterGatherBuffers.cs
- Pkcs7Recipient.cs
- QilLiteral.cs
- SafeIUnknown.cs
- DriveNotFoundException.cs
- AvTraceFormat.cs
- EntityCommandExecutionException.cs
- SudsWriter.cs
- ConfigXmlText.cs
- XNodeNavigator.cs
- AutoResizedEvent.cs
- InternalBufferOverflowException.cs
- NonValidatingSecurityTokenAuthenticator.cs
- ReceiveReply.cs
- JpegBitmapEncoder.cs
- ContextBase.cs
- EnvelopedSignatureTransform.cs
- StickyNoteContentControl.cs
- codemethodreferenceexpression.cs
- DoubleAnimation.cs
- FigureParagraph.cs
- TagPrefixCollection.cs
- Dynamic.cs
- HttpSessionStateBase.cs
- PerspectiveCamera.cs
- TransformGroup.cs
- DoubleLinkListEnumerator.cs
- TreeNodeStyle.cs
- QilStrConcat.cs
- BmpBitmapEncoder.cs
- TreeSet.cs
- FontResourceCache.cs
- RedistVersionInfo.cs
- RegexFCD.cs
- SafeNativeMethods.cs
- LinqDataSourceDeleteEventArgs.cs
- GridLength.cs
- RowCache.cs
- LeftCellWrapper.cs
- CodeDefaultValueExpression.cs
- LambdaCompiler.Statements.cs
- Knowncolors.cs
- DetailsViewPageEventArgs.cs
- CodeMemberEvent.cs
- dtdvalidator.cs
- ListSortDescription.cs
- Exception.cs
- ChtmlPageAdapter.cs
- Int32AnimationBase.cs
- WebCategoryAttribute.cs
- DecimalAnimationUsingKeyFrames.cs
- WebPartTransformerAttribute.cs
- ConfigurationManagerInternalFactory.cs
- XNodeSchemaApplier.cs
- StyleSheetDesigner.cs
- OperandQuery.cs
- KeyedPriorityQueue.cs
- XmlnsDefinitionAttribute.cs
- EntityContainerEmitter.cs
- ValidatingReaderNodeData.cs
- _AcceptOverlappedAsyncResult.cs
- XmlSchemaComplexType.cs
- MailAddressParser.cs
- HttpProtocolImporter.cs
- Grid.cs
- ClientData.cs
- BindingListCollectionView.cs
- VolatileResourceManager.cs
- UnauthorizedWebPart.cs
- ECDiffieHellman.cs
- TreeNodeMouseHoverEvent.cs
- ResourceExpression.cs
- RoleManagerModule.cs