Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / CompMod / System / Diagnostics / TraceUtils.cs / 1305376 / 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; using System.Runtime.Versioning; namespace System.Diagnostics { internal static class TraceUtils { [ResourceExposure(ResourceScope.None)] [ResourceConsumption(ResourceScope.Machine, ResourceScope.Machine)] 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 (IsOwnedTL(objectType)) throw new ConfigurationErrorsException(SR.GetString(SR.TL_InitializeData_NotSpecified)); // 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 = SecurityUtils.ConstructorInfoInvoke(ctorInfo, 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 = SecurityUtils.ConstructorInfoInvoke(ctorInfo, 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
- HierarchicalDataBoundControl.cs
- serverconfig.cs
- HexParser.cs
- Italic.cs
- VectorAnimationUsingKeyFrames.cs
- RowUpdatedEventArgs.cs
- PackagePart.cs
- LicFileLicenseProvider.cs
- DbConnectionPool.cs
- PolyQuadraticBezierSegment.cs
- ActivityDesignerAccessibleObject.cs
- MapPathBasedVirtualPathProvider.cs
- EntityContainerEmitter.cs
- MediaEntryAttribute.cs
- MulticastDelegate.cs
- HostingEnvironmentSection.cs
- XmlSequenceWriter.cs
- RectangleGeometry.cs
- ExtendedPropertyCollection.cs
- PrivateFontCollection.cs
- BodyWriter.cs
- TextMessageEncodingBindingElement.cs
- BinaryMessageEncodingElement.cs
- SafeBitVector32.cs
- FontNamesConverter.cs
- TextEditorTables.cs
- ServiceDiscoveryElement.cs
- ConsumerConnectionPoint.cs
- PartialCachingControl.cs
- SymbolMethod.cs
- SerializerWriterEventHandlers.cs
- HtmlMeta.cs
- SharedHttpTransportManager.cs
- TextParagraphView.cs
- OutputCacheSettings.cs
- ImageSource.cs
- HtmlInputText.cs
- SystemIPInterfaceProperties.cs
- DelegatingTypeDescriptionProvider.cs
- NumericExpr.cs
- PathGeometry.cs
- AnnotationService.cs
- Stackframe.cs
- Normalization.cs
- ColorConvertedBitmap.cs
- SqlUserDefinedTypeAttribute.cs
- DataGridViewCellStyle.cs
- BooleanSwitch.cs
- EditCommandColumn.cs
- DataGridViewLinkCell.cs
- Profiler.cs
- BuildResult.cs
- WebEventCodes.cs
- DBCSCodePageEncoding.cs
- ThreadStateException.cs
- XmlReaderSettings.cs
- WMIInterop.cs
- FacetValues.cs
- RotationValidation.cs
- ExtendedPropertyCollection.cs
- DateTimeFormatInfoScanner.cs
- OdbcCommand.cs
- CustomAttributeBuilder.cs
- TextEditorSpelling.cs
- _Rfc2616CacheValidators.cs
- TextViewBase.cs
- MergePropertyDescriptor.cs
- DataGridViewColumnEventArgs.cs
- ChangePasswordAutoFormat.cs
- TextParagraph.cs
- CodeDomSerializationProvider.cs
- OperatingSystem.cs
- SequenceNumber.cs
- AnnotationAuthorChangedEventArgs.cs
- CoTaskMemHandle.cs
- latinshape.cs
- CancellationState.cs
- FontInfo.cs
- MouseGestureValueSerializer.cs
- SqlDataReader.cs
- MatrixConverter.cs
- GroupJoinQueryOperator.cs
- CodeArrayCreateExpression.cs
- TypeHelpers.cs
- CompositeDesignerAccessibleObject.cs
- WebPartAuthorizationEventArgs.cs
- SequenceDesigner.cs
- BooleanSwitch.cs
- HashAlgorithm.cs
- MultitargetingHelpers.cs
- dataobject.cs
- ProfileEventArgs.cs
- ClientTargetSection.cs
- SqlFileStream.cs
- DataGridViewColumnTypeEditor.cs
- SafeFileMappingHandle.cs
- ToolBar.cs
- ADConnectionHelper.cs
- WindowShowOrOpenTracker.cs
- ListParagraph.cs