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
- TypeNameConverter.cs
- InternalTypeHelper.cs
- TranslateTransform3D.cs
- SessionStateContainer.cs
- WebEventTraceProvider.cs
- DebugView.cs
- WindowsAuthenticationModule.cs
- EventLogPermission.cs
- HttpContextBase.cs
- Directory.cs
- MenuItemCollection.cs
- OleDbException.cs
- TogglePattern.cs
- MdImport.cs
- SR.cs
- OdbcTransaction.cs
- Quaternion.cs
- ColumnMap.cs
- HiddenFieldDesigner.cs
- TextViewElement.cs
- AudioFormatConverter.cs
- BaseDataList.cs
- ToolBarButton.cs
- TCPListener.cs
- BitStream.cs
- ButtonBaseDesigner.cs
- EntityObject.cs
- safelinkcollection.cs
- DoubleAnimationClockResource.cs
- DesignerSerializationOptionsAttribute.cs
- AssociationSetEnd.cs
- ValidationRuleCollection.cs
- safex509handles.cs
- XdrBuilder.cs
- ListBase.cs
- LayoutDump.cs
- GlobalEventManager.cs
- InvalidPipelineStoreException.cs
- DictionaryBase.cs
- FontDialog.cs
- LayoutInformation.cs
- ContextBase.cs
- FrugalMap.cs
- DataServiceQueryOfT.cs
- FixedPageProcessor.cs
- SoapSchemaExporter.cs
- DataGridViewRow.cs
- Compiler.cs
- WebReferenceOptions.cs
- dataobject.cs
- ApplicationServiceHelper.cs
- TreeViewBindingsEditorForm.cs
- BasicCommandTreeVisitor.cs
- IISUnsafeMethods.cs
- TextBox.cs
- InvokeHandlers.cs
- SignatureDescription.cs
- PeerToPeerException.cs
- HtmlHead.cs
- DbDataSourceEnumerator.cs
- MD5.cs
- ResourceContainer.cs
- NamedPermissionSet.cs
- DropDownButton.cs
- GroupByExpressionRewriter.cs
- ResourceContainer.cs
- SvcMapFileSerializer.cs
- AuthenticationSection.cs
- NativeMethods.cs
- UnmanagedMarshal.cs
- ActivationServices.cs
- TextSimpleMarkerProperties.cs
- ComponentCollection.cs
- BaseWebProxyFinder.cs
- HtmlGenericControl.cs
- ResourceBinder.cs
- OutOfMemoryException.cs
- SendSecurityHeaderElementContainer.cs
- FlowDocumentPaginator.cs
- NamedObject.cs
- Control.cs
- BindingGroup.cs
- ReflectionTypeLoadException.cs
- DaylightTime.cs
- SafeCoTaskMem.cs
- storagemappingitemcollection.viewdictionary.cs
- ForeignConstraint.cs
- AuthenticatedStream.cs
- WindowsStartMenu.cs
- LinqDataSourceValidationException.cs
- ExtentCqlBlock.cs
- ConfigurationSection.cs
- ContentDesigner.cs
- XmlSchemaSimpleTypeRestriction.cs
- FloaterParaClient.cs
- TypeInitializationException.cs
- Form.cs
- TypedElement.cs
- _AuthenticationState.cs
- SmtpMail.cs