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
- RowBinding.cs
- DynamicField.cs
- OraclePermissionAttribute.cs
- SqlDataSourceFilteringEventArgs.cs
- SmtpDigestAuthenticationModule.cs
- StorageBasedPackageProperties.cs
- UshortList2.cs
- AttributeAction.cs
- MembershipValidatePasswordEventArgs.cs
- CompiledQueryCacheEntry.cs
- FontFamilyConverter.cs
- Cloud.cs
- arabicshape.cs
- DateTimeConstantAttribute.cs
- TcpSocketManager.cs
- NetworkInformationPermission.cs
- EdgeModeValidation.cs
- FontSourceCollection.cs
- GroupBoxDesigner.cs
- DayRenderEvent.cs
- SHA256Managed.cs
- ScrollPatternIdentifiers.cs
- PowerModeChangedEventArgs.cs
- MembershipSection.cs
- StringPropertyBuilder.cs
- ToolStripKeyboardHandlingService.cs
- XmlMembersMapping.cs
- PersonalizationAdministration.cs
- SessionIDManager.cs
- DocumentViewerBase.cs
- Token.cs
- RelationshipSet.cs
- Matrix.cs
- MediaElement.cs
- Component.cs
- XmlWriter.cs
- DataGridCaption.cs
- TrustManagerMoreInformation.cs
- ProviderCollection.cs
- PageEventArgs.cs
- TemplateKey.cs
- TimerElapsedEvenArgs.cs
- TaskHelper.cs
- ConfigurationValidatorAttribute.cs
- SqlTypeSystemProvider.cs
- mediapermission.cs
- SyndicationSerializer.cs
- PropertyCollection.cs
- StringInfo.cs
- DomNameTable.cs
- SymDocumentType.cs
- DefaultBindingPropertyAttribute.cs
- AtomPub10ServiceDocumentFormatter.cs
- Metafile.cs
- ActivityXRefPropertyEditor.cs
- Rectangle.cs
- SqlBooleanMismatchVisitor.cs
- TagMapCollection.cs
- WorkflowWebHostingModule.cs
- TraceUtility.cs
- AssemblyFilter.cs
- HandlerMappingMemo.cs
- RMEnrollmentPage2.cs
- RuntimeConfig.cs
- GetPageNumberCompletedEventArgs.cs
- arabicshape.cs
- BlobPersonalizationState.cs
- XmlNamespaceDeclarationsAttribute.cs
- HttpCacheVary.cs
- FileLoadException.cs
- XNodeNavigator.cs
- IntSecurity.cs
- ColorTranslator.cs
- LinqToSqlWrapper.cs
- RTLAwareMessageBox.cs
- DataKey.cs
- SoapMessage.cs
- Pen.cs
- NameValuePermission.cs
- TimeoutConverter.cs
- Int32KeyFrameCollection.cs
- HelpExampleGenerator.cs
- ECDiffieHellman.cs
- ElementHostAutomationPeer.cs
- XmlUrlResolver.cs
- RemotingConfiguration.cs
- metadatamappinghashervisitor.cs
- AuthenticationService.cs
- Debug.cs
- FixedHighlight.cs
- RSACryptoServiceProvider.cs
- SiteMap.cs
- TimeSpanMinutesOrInfiniteConverter.cs
- TypeConverterAttribute.cs
- KeyValueSerializer.cs
- FormsAuthenticationTicket.cs
- NavigationFailedEventArgs.cs
- ConfigurationSettings.cs
- CornerRadiusConverter.cs
- LessThanOrEqual.cs