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
- WmfPlaceableFileHeader.cs
- GeometryDrawing.cs
- Nullable.cs
- HttpConfigurationSystem.cs
- InfoCardRSAPKCS1KeyExchangeFormatter.cs
- TimeSpanSecondsOrInfiniteConverter.cs
- PersonalizationStateQuery.cs
- PolyLineSegment.cs
- ITextView.cs
- Decimal.cs
- TraceListeners.cs
- SqlTypeConverter.cs
- ChtmlPageAdapter.cs
- CreateParams.cs
- TimeZoneNotFoundException.cs
- AsyncOperation.cs
- SqlRewriteScalarSubqueries.cs
- ResourceDefaultValueAttribute.cs
- CompilationLock.cs
- RtfFormatStack.cs
- SQLMoney.cs
- RequestDescription.cs
- FontUnitConverter.cs
- RoutedEventHandlerInfo.cs
- LinearQuaternionKeyFrame.cs
- BitmapInitialize.cs
- FieldNameLookup.cs
- CodeMemberField.cs
- BitmapScalingModeValidation.cs
- QilFactory.cs
- DesignTimeResourceProviderFactoryAttribute.cs
- ArrayTypeMismatchException.cs
- PresentationAppDomainManager.cs
- Light.cs
- OrderedDictionary.cs
- WebFormsRootDesigner.cs
- TextAdaptor.cs
- SystemIPv4InterfaceProperties.cs
- WindowsBrush.cs
- InvalidAsynchronousStateException.cs
- _NetworkingPerfCounters.cs
- HandleExceptionArgs.cs
- SimpleModelProvider.cs
- RuntimeEnvironment.cs
- HMACSHA512.cs
- TrackingLocationCollection.cs
- BooleanProjectedSlot.cs
- WebPageTraceListener.cs
- BaseProcessor.cs
- ProgressBar.cs
- ToolStripDropDown.cs
- FlowDocumentReader.cs
- COM2IPerPropertyBrowsingHandler.cs
- HttpsHostedTransportConfiguration.cs
- AppDomainAttributes.cs
- NumberAction.cs
- IdSpace.cs
- ConnectionInterfaceCollection.cs
- WebServiceData.cs
- ELinqQueryState.cs
- ConfigXmlComment.cs
- CodeNamespace.cs
- PriorityQueue.cs
- NavigationExpr.cs
- CaseInsensitiveComparer.cs
- DiscoveryClientRequestChannel.cs
- ProcessModelInfo.cs
- DynamicScriptObject.cs
- SmtpFailedRecipientException.cs
- PrivateUnsafeNativeCompoundFileMethods.cs
- OrderByLifter.cs
- ProfileServiceManager.cs
- StringUtil.cs
- XmlSchemaDatatype.cs
- SqlException.cs
- FloaterBaseParagraph.cs
- SerializerProvider.cs
- StateElementCollection.cs
- Utils.cs
- PeerNearMe.cs
- safelinkcollection.cs
- WindowsBrush.cs
- SmiEventSink_DeferedProcessing.cs
- UniformGrid.cs
- MulticastOption.cs
- ConstraintCollection.cs
- DocumentXPathNavigator.cs
- Animatable.cs
- XmlBaseReader.cs
- AsmxEndpointPickerExtension.cs
- AspNetHostingPermission.cs
- WorkflowViewService.cs
- ClientConfigurationSystem.cs
- SHA384.cs
- BindingNavigator.cs
- BamlRecordWriter.cs
- AsymmetricKeyExchangeDeformatter.cs
- TagPrefixCollection.cs
- GetPolicyDetailsRequest.cs
- DmlSqlGenerator.cs