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
- OdbcParameter.cs
- VisualCollection.cs
- TypeConverterHelper.cs
- ClientConfigPaths.cs
- DataBindingCollection.cs
- SqlCacheDependency.cs
- HttpCacheVary.cs
- Vector3D.cs
- x509utils.cs
- DoubleLink.cs
- HttpResponseHeader.cs
- WriteableBitmap.cs
- SizeFConverter.cs
- PowerStatus.cs
- ToolboxItemLoader.cs
- AssemblyAttributesGoHere.cs
- ScriptComponentDescriptor.cs
- wmiprovider.cs
- DataGridView.cs
- EpmSourcePathSegment.cs
- StringUtil.cs
- OdbcCommand.cs
- ProgressBarAutomationPeer.cs
- DataGridViewButtonColumn.cs
- ImageListStreamer.cs
- XPathNavigatorReader.cs
- HelpEvent.cs
- TrackingDataItem.cs
- InertiaTranslationBehavior.cs
- MetadataSerializer.cs
- RepeaterItem.cs
- AxisAngleRotation3D.cs
- QualifierSet.cs
- WmlLabelAdapter.cs
- NullableBoolConverter.cs
- StaticExtensionConverter.cs
- BrowsableAttribute.cs
- MSG.cs
- UTF8Encoding.cs
- XmlDataDocument.cs
- ConnectivityStatus.cs
- ConditionChanges.cs
- ListItemCollection.cs
- StrongNamePublicKeyBlob.cs
- HttpStreamMessage.cs
- FacetChecker.cs
- ListBindingConverter.cs
- FileDialog.cs
- Freezable.cs
- StringUtil.cs
- ConnectionsZone.cs
- EventRecord.cs
- basevalidator.cs
- TableLayoutStyleCollection.cs
- InputScopeManager.cs
- XmlElementCollection.cs
- XPathDocument.cs
- TypeDescriptionProvider.cs
- Timeline.cs
- BindingExpression.cs
- MemoryStream.cs
- ViewKeyConstraint.cs
- PartEditor.cs
- CaseInsensitiveComparer.cs
- ActiveXHelper.cs
- DbConnectionPoolGroup.cs
- CorrelationTokenInvalidatedHandler.cs
- MaterialGroup.cs
- HwndProxyElementProvider.cs
- Vector3DCollection.cs
- HttpCookieCollection.cs
- SamlAudienceRestrictionCondition.cs
- SettingsPropertyWrongTypeException.cs
- PtsHost.cs
- PackWebRequestFactory.cs
- FamilyMapCollection.cs
- SqlCommandSet.cs
- PartialToken.cs
- ViewPort3D.cs
- EndPoint.cs
- SqlMethodCallConverter.cs
- AssemblyBuilderData.cs
- SqlNotificationEventArgs.cs
- ZipIOZip64EndOfCentralDirectoryBlock.cs
- ResourceDisplayNameAttribute.cs
- OverflowException.cs
- CorrelationTokenInvalidatedHandler.cs
- UIElementIsland.cs
- ColumnWidthChangedEvent.cs
- PauseStoryboard.cs
- HttpListenerRequest.cs
- TableLayoutSettings.cs
- DesignTimeParseData.cs
- UrlMappingsSection.cs
- remotingproxy.cs
- ByteFacetDescriptionElement.cs
- TextElementCollection.cs
- ServerValidateEventArgs.cs
- ParameterModifier.cs
- MessageQueueAccessControlEntry.cs