Code:
/ 4.0 / 4.0 / 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// 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
- CurrentTimeZone.cs
- Base64Decoder.cs
- Documentation.cs
- PeerReferralPolicy.cs
- PeerName.cs
- ModifiableIteratorCollection.cs
- ClassHandlersStore.cs
- AttachedAnnotationChangedEventArgs.cs
- AliasedExpr.cs
- RawStylusInput.cs
- HostVisual.cs
- PassportAuthentication.cs
- WebHostUnsafeNativeMethods.cs
- EnumerableRowCollection.cs
- RelationshipConverter.cs
- ChameleonKey.cs
- WebPartEditorApplyVerb.cs
- ClientBuildManagerTypeDescriptionProviderBridge.cs
- _TransmitFileOverlappedAsyncResult.cs
- DocumentGridPage.cs
- ConnectionPoint.cs
- Mappings.cs
- CacheOutputQuery.cs
- IPAddressCollection.cs
- HostingEnvironmentSection.cs
- DefaultMemberAttribute.cs
- LabelEditEvent.cs
- PageContentAsyncResult.cs
- DocumentReference.cs
- MailMessage.cs
- StickyNote.cs
- EventWaitHandleSecurity.cs
- AttributeQuery.cs
- ComPlusServiceHost.cs
- DbSourceParameterCollection.cs
- Compiler.cs
- TagPrefixCollection.cs
- MembershipPasswordException.cs
- SemanticResolver.cs
- ScriptManagerProxy.cs
- SoapSchemaImporter.cs
- TaskCanceledException.cs
- FrameDimension.cs
- TextDecorations.cs
- XmlSchemaValidationException.cs
- ArithmeticException.cs
- EnvelopedSignatureTransform.cs
- DataBinder.cs
- ChangeToolStripParentVerb.cs
- CookieParameter.cs
- __TransparentProxy.cs
- GifBitmapEncoder.cs
- WmlTextBoxAdapter.cs
- ConstraintConverter.cs
- Composition.cs
- DbProviderSpecificTypePropertyAttribute.cs
- DurableEnlistmentState.cs
- TextBoxBaseDesigner.cs
- CustomAssemblyResolver.cs
- unsafeIndexingFilterStream.cs
- StyleSelector.cs
- SevenBitStream.cs
- FilteredAttributeCollection.cs
- XmlSchemaAll.cs
- XPathScanner.cs
- Assert.cs
- BamlLocalizerErrorNotifyEventArgs.cs
- SecurityChannelFactory.cs
- NavigationPropertyEmitter.cs
- WebServiceErrorEvent.cs
- WebPartEditorCancelVerb.cs
- ProxyAttribute.cs
- Queue.cs
- MultipleViewProviderWrapper.cs
- ObsoleteAttribute.cs
- Rect3D.cs
- BindingGraph.cs
- DeferredElementTreeState.cs
- AlternateView.cs
- XMLDiffLoader.cs
- smtppermission.cs
- CalendarDataBindingHandler.cs
- DefaultSection.cs
- PopOutPanel.cs
- PropertySegmentSerializationProvider.cs
- Html32TextWriter.cs
- XslTransform.cs
- LogicalTreeHelper.cs
- Win32PrintDialog.cs
- DATA_BLOB.cs
- ScriptControlManager.cs
- FaultReasonText.cs
- ProxyElement.cs
- sqlser.cs
- EntityProxyFactory.cs
- SecurityDescriptor.cs
- MarshalByValueComponent.cs
- ReadOnlyNameValueCollection.cs
- MulticastNotSupportedException.cs
- GridViewAutomationPeer.cs