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
- CqlBlock.cs
- SecurityUtils.cs
- SchemaSetCompiler.cs
- StandardToolWindows.cs
- GridViewSelectEventArgs.cs
- AuthenticatedStream.cs
- Metafile.cs
- XmlByteStreamWriter.cs
- ProfileService.cs
- CompressStream.cs
- KeyedQueue.cs
- SqlDuplicator.cs
- ActivationArguments.cs
- WebPartConnectVerb.cs
- OleStrCAMarshaler.cs
- Opcode.cs
- SslStream.cs
- DateTimeHelper.cs
- KnownBoxes.cs
- CodeIndexerExpression.cs
- JapaneseCalendar.cs
- EqualityComparer.cs
- XmlSchemaImporter.cs
- NopReturnReader.cs
- DoubleLink.cs
- OdbcConnection.cs
- Misc.cs
- InvalidFilterCriteriaException.cs
- ListControl.cs
- SqlConnectionString.cs
- DiscoveryClientProtocol.cs
- CompilerWrapper.cs
- PhoneCallDesigner.cs
- ThrowHelper.cs
- DynamicQueryStringParameter.cs
- CodeChecksumPragma.cs
- CqlWriter.cs
- KnownIds.cs
- TdsEnums.cs
- DeviceFilterEditorDialog.cs
- Model3DCollection.cs
- EdmProperty.cs
- OutOfProcStateClientManager.cs
- TreeViewEvent.cs
- ListViewItemMouseHoverEvent.cs
- PathTooLongException.cs
- HttpsChannelListener.cs
- StringStorage.cs
- Roles.cs
- WindowsEditBox.cs
- Convert.cs
- ModelVisual3D.cs
- MimeTypeAttribute.cs
- XmlSchemaAnnotation.cs
- ListViewInsertedEventArgs.cs
- XmlTypeMapping.cs
- XXXOnTypeBuilderInstantiation.cs
- FilteredXmlReader.cs
- QueryCreatedEventArgs.cs
- CompressedStack.cs
- CqlWriter.cs
- documentsequencetextview.cs
- StringToken.cs
- DbgCompiler.cs
- ISFTagAndGuidCache.cs
- SystemColors.cs
- ListViewGroupItemCollection.cs
- TemplatedMailWebEventProvider.cs
- StandardRuntimeEnumValidator.cs
- ClientSideQueueItem.cs
- FrameworkObject.cs
- DataControlButton.cs
- SQLGuid.cs
- InvalidPropValue.cs
- _Semaphore.cs
- UIPermission.cs
- ControlCodeDomSerializer.cs
- MeasurementDCInfo.cs
- DebugView.cs
- IApplicationTrustManager.cs
- ActiveDocumentEvent.cs
- X509Extension.cs
- TemplateLookupAction.cs
- DataListCommandEventArgs.cs
- StartUpEventArgs.cs
- SoapHeaders.cs
- DuplicateContext.cs
- WinFormsSpinner.cs
- ToolStripSplitStackLayout.cs
- Error.cs
- LambdaCompiler.Generated.cs
- COAUTHIDENTITY.cs
- IsolatedStorageException.cs
- RuntimeArgument.cs
- SessionConnectionReader.cs
- HtmlLiteralTextAdapter.cs
- MetadataItemEmitter.cs
- SqlXml.cs
- SystemIPv6InterfaceProperties.cs
- PrefixHandle.cs