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
- AsmxEndpointPickerExtension.cs
- PolicyValidator.cs
- CodeComment.cs
- DataGridViewMethods.cs
- FormsAuthentication.cs
- SinglePageViewer.cs
- Figure.cs
- OutKeywords.cs
- Setter.cs
- DataGridViewCellErrorTextNeededEventArgs.cs
- ScriptModule.cs
- WindowsEditBoxRange.cs
- SR.cs
- _WinHttpWebProxyDataBuilder.cs
- ConnectionInterfaceCollection.cs
- ErrorsHelper.cs
- WindowsAuthenticationModule.cs
- IssuedSecurityTokenProvider.cs
- ListControl.cs
- XmlFormatReaderGenerator.cs
- TextDocumentView.cs
- XmlReflectionImporter.cs
- WebPartsPersonalization.cs
- InternalSafeNativeMethods.cs
- IisTraceListener.cs
- GroupDescription.cs
- invalidudtexception.cs
- SQlBooleanStorage.cs
- StringCollectionMarkupSerializer.cs
- MenuScrollingVisibilityConverter.cs
- EdmComplexPropertyAttribute.cs
- ExpressionEditorAttribute.cs
- MSAAEventDispatcher.cs
- SqlParameter.cs
- DbConnectionPoolGroupProviderInfo.cs
- TraceLog.cs
- WasEndpointConfigContainer.cs
- unsafenativemethodstextservices.cs
- Trace.cs
- DataGridViewComboBoxColumn.cs
- WebPartManagerInternals.cs
- XmlSerializer.cs
- EntityParameter.cs
- RegexCode.cs
- HierarchicalDataBoundControlAdapter.cs
- ISessionStateStore.cs
- TextElementEnumerator.cs
- BamlLocalizerErrorNotifyEventArgs.cs
- SecurityElement.cs
- TranslateTransform3D.cs
- MemoryStream.cs
- SByteStorage.cs
- OdbcCommand.cs
- Parsers.cs
- UxThemeWrapper.cs
- unitconverter.cs
- BuildProviderAppliesToAttribute.cs
- MethodAccessException.cs
- GenerateHelper.cs
- Rotation3DAnimation.cs
- datacache.cs
- KeyBinding.cs
- sqlser.cs
- CodeIdentifier.cs
- SmtpAuthenticationManager.cs
- DataFieldCollectionEditor.cs
- JsonQNameDataContract.cs
- ChineseLunisolarCalendar.cs
- MenuRenderer.cs
- TargetInvocationException.cs
- PlainXmlWriter.cs
- SymmetricKeyWrap.cs
- PenThreadWorker.cs
- XmlSchemaObject.cs
- QilPatternVisitor.cs
- BuildManagerHost.cs
- EpmSyndicationContentSerializer.cs
- IPCCacheManager.cs
- FormsAuthenticationConfiguration.cs
- DataGridViewTopRowAccessibleObject.cs
- WmlTextViewAdapter.cs
- UpdateProgress.cs
- Paragraph.cs
- SafePEFileHandle.cs
- SplitterEvent.cs
- WmlTextBoxAdapter.cs
- FormsAuthenticationModule.cs
- WebConfigurationManager.cs
- OSFeature.cs
- DataBoundControlHelper.cs
- ServiceNotStartedException.cs
- _ContextAwareResult.cs
- bidPrivateBase.cs
- MessageProtectionOrder.cs
- OptimizerPatterns.cs
- Message.cs
- DnsPermission.cs
- PrintSchema.cs
- ValueChangedEventManager.cs
- ExtendedPropertyInfo.cs