Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / TransactionBridge / Microsoft / Transactions / Wsat / Messaging / TwoPhaseCommit.cs / 1 / TwoPhaseCommit.cs
//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- // Define the interfaces and infrastructure needed to receive 2PC messages using System; using System.Diagnostics; using System.ServiceModel; using System.ServiceModel.Channels; using Microsoft.Transactions.Wsat.Protocol; using DiagnosticUtility = Microsoft.Transactions.Bridge.DiagnosticUtility; namespace Microsoft.Transactions.Wsat.Messaging { interface ITwoPhaseCommitCoordinator { void Prepared(Message message); void ReadOnly(Message message); void Aborted(Message message); void Committed(Message message); void Replay(Message message); void Fault(Message message, MessageFault messageFault); } interface ITwoPhaseCommitParticipant { void Prepare(Message message); void Commit(Message message); void Rollback(Message message); void Fault(Message message, MessageFault messageFault); } //=============================================================================================================== // TwoPhaseTwoPhaseCommitCoordinator //=============================================================================================================== class TwoPhaseCommitCoordinatorDispatcher : DatagramMessageDispatcher { CoordinationService service; ITwoPhaseCommitCoordinator dispatch; ProtocolVersion protocolVersion; public TwoPhaseCommitCoordinatorDispatcher (CoordinationService service, ITwoPhaseCommitCoordinator dispatch) : base(service.ProtocolVersion) { this.service = service; this.dispatch = dispatch; this.protocolVersion = service.ProtocolVersion; } protected override DatagramProxy CreateFaultProxy (EndpointAddress to) { return this.service.CreateTwoPhaseCommitParticipantProxy (to, null); } public void Prepared(Message message) { try { if (DebugTrace.Verbose) { DebugTrace.Trace(TraceLevel.Verbose, "Dispatching 2PC Prepared message"); if (DebugTrace.Pii) DebugTrace.TracePii(TraceLevel.Verbose, "Sender is {0}", CoordinationServiceSecurity.GetSenderName(message)); } PreparedMessage.ReadFrom (message, this.protocolVersion); this.dispatch.Prepared (message); } catch (CommunicationException e) { DiagnosticUtility.ExceptionUtility.TraceHandledException(e, TraceEventType.Warning); this.OnMessageException (message, e); } #pragma warning suppress 56500 // Only catch Exception for InvokeFinalHandler catch (Exception e) { DebugTrace.Trace ( TraceLevel.Error, "Unhandled exception {0} dispatching 2PC Prepared message: {1}", e.GetType().Name, e ); // Contractually the dispatch object can only throw CommunicationException. // Our implementation is very careful to only throw this type of exception // (e.g. when deserializing a malformed message body or header...) // Any other exception indicates that things have gone seriously wrong, // so we cannot be trusted to process further messages. This is a QFE-worthy event. DiagnosticUtility.InvokeFinalHandler(e); } } public void ReadOnly(Message message) { try { if (DebugTrace.Verbose) { DebugTrace.Trace(TraceLevel.Verbose, "Dispatching 2PC ReadOnly message"); if (DebugTrace.Pii) DebugTrace.TracePii(TraceLevel.Verbose, "Sender is {0}", CoordinationServiceSecurity.GetSenderName(message)); } ReadOnlyMessage.ReadFrom (message, this.protocolVersion); this.dispatch.ReadOnly (message); } catch (CommunicationException e) { DiagnosticUtility.ExceptionUtility.TraceHandledException(e, TraceEventType.Warning); this.OnMessageException (message, e); } #pragma warning suppress 56500 // Only catch Exception for InvokeFinalHandler catch (Exception e) { DebugTrace.Trace ( TraceLevel.Error, "Unhandled exception {0} dispatching 2PC ReadOnly message: {1}", e.GetType().Name, e ); // Contractually the dispatch object can only throw CommunicationException. // Our implementation is very careful to only throw this type of exception // (e.g. when deserializing a malformed message body or header...) // Any other exception indicates that things have gone seriously wrong, // so we cannot be trusted to process further messages. This is a QFE-worthy event. DiagnosticUtility.InvokeFinalHandler(e); } } public void Committed(Message message) { try { if (DebugTrace.Verbose) { DebugTrace.Trace(TraceLevel.Verbose, "Dispatching 2PC Committed message"); if (DebugTrace.Pii) DebugTrace.TracePii(TraceLevel.Verbose, "Sender is {0}", CoordinationServiceSecurity.GetSenderName(message)); } CommittedMessage.ReadFrom (message, this.protocolVersion); this.dispatch.Committed (message); } catch (CommunicationException e) { DiagnosticUtility.ExceptionUtility.TraceHandledException(e, TraceEventType.Warning); this.OnMessageException (message, e); } #pragma warning suppress 56500 // Only catch Exception for InvokeFinalHandler catch (Exception e) { DebugTrace.Trace ( TraceLevel.Error, "Unhandled exception {0} dispatching 2PC Committed message: {1}", e.GetType().Name, e ); // Contractually the dispatch object can only throw CommunicationException. // Our implementation is very careful to only throw this type of exception // (e.g. when deserializing a malformed message body or header...) // Any other exception indicates that things have gone seriously wrong, // so we cannot be trusted to process further messages. This is a QFE-worthy event. DiagnosticUtility.InvokeFinalHandler(e); } } public void Aborted(Message message) { try { if (DebugTrace.Verbose) { DebugTrace.Trace(TraceLevel.Verbose, "Dispatching 2PC Aborted message"); if (DebugTrace.Pii) DebugTrace.TracePii(TraceLevel.Verbose, "Sender is {0}", CoordinationServiceSecurity.GetSenderName(message)); } AbortedMessage.ReadFrom (message, this.protocolVersion); this.dispatch.Aborted(message); } catch (CommunicationException e) { DiagnosticUtility.ExceptionUtility.TraceHandledException(e, TraceEventType.Warning); this.OnMessageException (message, e); } #pragma warning suppress 56500 // Only catch Exception for InvokeFinalHandler catch (Exception e) { DebugTrace.Trace ( TraceLevel.Error, "Unhandled exception {0} dispatching 2PC Aborted message: {1}", e.GetType().Name, e ); // Contractually the dispatch object can only throw CommunicationException. // Our implementation is very careful to only throw this type of exception // (e.g. when deserializing a malformed message body or header...) // Any other exception indicates that things have gone seriously wrong, // so we cannot be trusted to process further messages. This is a QFE-worthy event. DiagnosticUtility.InvokeFinalHandler(e); } } public void Replay(Message message) { ProtocolVersionHelper.AssertProtocolVersion10(this.protocolVersion, typeof(TwoPhaseCommitCoordinatorDispatcher), "constr"); try { if (DebugTrace.Verbose) { DebugTrace.Trace(TraceLevel.Verbose, "Dispatching 2PC Replay message"); if (DebugTrace.Pii) DebugTrace.TracePii(TraceLevel.Verbose, "Sender is {0}", CoordinationServiceSecurity.GetSenderName(message)); } ReplayMessage.ReadFrom (message, this.protocolVersion); this.dispatch.Replay (message); } catch (CommunicationException e) { DiagnosticUtility.ExceptionUtility.TraceHandledException(e, TraceEventType.Warning); this.OnMessageException (message, e); } #pragma warning suppress 56500 // Only catch Exception for InvokeFinalHandler catch (Exception e) { DebugTrace.Trace ( TraceLevel.Error, "Unhandled exception {0} dispatching Replay message: {1}", e.GetType().Name, e ); // Contractually the dispatch object can only throw CommunicationException. // Our implementation is very careful to only throw this type of exception // (e.g. when deserializing a malformed message body or header...) // Any other exception indicates that things have gone seriously wrong, // so we cannot be trusted to process further messages. This is a QFE-worthy event. DiagnosticUtility.InvokeFinalHandler(e); } } public void WsaFault(Message message) { Fault(message); } public void WscoorFault(Message message) { Fault(message); } public void WsatFault(Message message) { Fault(message); } void Fault (Message message) { try { MessageFault fault = MessageFault.CreateFault (message, CoordinationBinding.MaxFaultSize); if (DebugTrace.Verbose) { FaultCode code = Library.GetBaseFaultCode (fault); DebugTrace.Trace(TraceLevel.Verbose, "Dispatching participant 2PC fault {0}", code == null ? "unknown" : code.Name); if (DebugTrace.Pii) DebugTrace.TracePii(TraceLevel.Verbose, "Sender is {0}", CoordinationServiceSecurity.GetSenderName(message)); } this.dispatch.Fault (message, fault); } catch (CommunicationException e) { DiagnosticUtility.ExceptionUtility.TraceHandledException(e, TraceEventType.Warning); this.OnMessageException (message, e); } #pragma warning suppress 56500 // Only catch Exception for InvokeFinalHandler catch (Exception e) { DebugTrace.Trace ( TraceLevel.Error, "Unhandled exception {0} dispatching 2PC fault from participant: {1}", e.GetType().Name, e ); // Contractually the dispatch object can only throw CommunicationException. // Our implementation is very careful to only throw this type of exception // (e.g. when deserializing a malformed message body or header...) // Any other exception indicates that things have gone seriously wrong, // so we cannot be trusted to process further messages. This is a QFE-worthy event. DiagnosticUtility.InvokeFinalHandler(e); } } public static IWSTwoPhaseCommitCoordinator Instance(CoordinationService service, ITwoPhaseCommitCoordinator dispatch) { ProtocolVersionHelper.AssertProtocolVersion(service.ProtocolVersion, typeof(TwoPhaseCommitCoordinatorDispatcher), "V"); //assert valid protocol version switch (service.ProtocolVersion) { case ProtocolVersion.Version10: return new TwoPhaseCommitCoordinatorDispatcher10(service, dispatch); case ProtocolVersion.Version11: return new TwoPhaseCommitCoordinatorDispatcher11(service, dispatch); default: return null; // inaccessible path because we have asserted the protocol version } } } [ServiceBehavior ( InstanceContextMode = InstanceContextMode.Single, ConcurrencyMode = ConcurrencyMode.Multiple)] class TwoPhaseCommitCoordinatorDispatcher10 : IWSTwoPhaseCommitCoordinator10 { TwoPhaseCommitCoordinatorDispatcher twoPhaseCommitCoordinatorDispatcher; public TwoPhaseCommitCoordinatorDispatcher10(CoordinationService service, ITwoPhaseCommitCoordinator dispatch) { ProtocolVersionHelper.AssertProtocolVersion10(service.ProtocolVersion, typeof(TwoPhaseCommitCoordinatorDispatcher10), "constr"); this.twoPhaseCommitCoordinatorDispatcher = new TwoPhaseCommitCoordinatorDispatcher(service, dispatch); } public Type ContractType { get { return typeof(IWSTwoPhaseCommitCoordinator10); } } public void Prepared (Message message) { this.twoPhaseCommitCoordinatorDispatcher.Prepared(message); } public void ReadOnly (Message message) { this.twoPhaseCommitCoordinatorDispatcher.ReadOnly(message); } public void Aborted(Message message) { this.twoPhaseCommitCoordinatorDispatcher.Aborted(message); } public void Committed (Message message) { this.twoPhaseCommitCoordinatorDispatcher.Committed(message); } public void Replay (Message message) { this.twoPhaseCommitCoordinatorDispatcher.Replay(message); } public void WsaFault(Message message) { this.twoPhaseCommitCoordinatorDispatcher.WsaFault(message); } public void WscoorFault(Message message) { this.twoPhaseCommitCoordinatorDispatcher.WscoorFault(message); } public void WsatFault(Message message) { this.twoPhaseCommitCoordinatorDispatcher.WsatFault(message); } } [ServiceBehavior ( InstanceContextMode = InstanceContextMode.Single, ConcurrencyMode = ConcurrencyMode.Multiple)] class TwoPhaseCommitCoordinatorDispatcher11 : IWSTwoPhaseCommitCoordinator11 { TwoPhaseCommitCoordinatorDispatcher twoPhaseCommitCoordinatorDispatcher; public TwoPhaseCommitCoordinatorDispatcher11(CoordinationService service, ITwoPhaseCommitCoordinator dispatch) { ProtocolVersionHelper.AssertProtocolVersion11(service.ProtocolVersion, typeof(TwoPhaseCommitCoordinatorDispatcher11), "constr"); this.twoPhaseCommitCoordinatorDispatcher = new TwoPhaseCommitCoordinatorDispatcher(service, dispatch); } public Type ContractType { get { return typeof(IWSTwoPhaseCommitCoordinator11); } } public void Prepared (Message message) { this.twoPhaseCommitCoordinatorDispatcher.Prepared(message); } public void ReadOnly (Message message) { this.twoPhaseCommitCoordinatorDispatcher.ReadOnly(message); } public void Aborted(Message message) { this.twoPhaseCommitCoordinatorDispatcher.Aborted(message); } public void Committed (Message message) { this.twoPhaseCommitCoordinatorDispatcher.Committed(message); } public void WsaFault(Message message) { this.twoPhaseCommitCoordinatorDispatcher.WsaFault(message); } public void WscoorFault(Message message) { this.twoPhaseCommitCoordinatorDispatcher.WscoorFault(message); } public void WsatFault(Message message) { this.twoPhaseCommitCoordinatorDispatcher.WsatFault(message); } } //================================================================================================================ // TwoPhaseCommitParticipant //=============================================================================================================== class TwoPhaseCommitParticipantDispatcher : DatagramMessageDispatcher { CoordinationService service; ITwoPhaseCommitParticipant dispatch; ProtocolVersion protocolVersion; public TwoPhaseCommitParticipantDispatcher (CoordinationService service, ITwoPhaseCommitParticipant dispatch) : base(service.ProtocolVersion) { this.service = service; this.dispatch = dispatch; this.protocolVersion = service.ProtocolVersion; } protected override DatagramProxy CreateFaultProxy (EndpointAddress to) { return this.service.CreateTwoPhaseCommitCoordinatorProxy (to, null); } public void Prepare(Message message) { try { if (DebugTrace.Verbose) { DebugTrace.Trace(TraceLevel.Verbose, "Dispatching 2PC Prepare message"); if (DebugTrace.Pii) DebugTrace.TracePii(TraceLevel.Verbose, "Sender is {0}", CoordinationServiceSecurity.GetSenderName(message)); } PrepareMessage.ReadFrom (message, this.protocolVersion); this.dispatch.Prepare (message); } catch (CommunicationException e) { DiagnosticUtility.ExceptionUtility.TraceHandledException(e, TraceEventType.Warning); this.OnMessageException (message, e); } #pragma warning suppress 56500 // Only catch Exception for InvokeFinalHandler catch (Exception e) { DebugTrace.Trace ( TraceLevel.Error, "Unhandled exception {0} dispatching Prepare message: {1}", e.GetType().Name, e ); // Contractually the dispatch object can only throw CommunicationException. // Our implementation is very careful to only throw this type of exception // (e.g. when deserializing a malformed message body or header...) // Any other exception indicates that things have gone seriously wrong, // so we cannot be trusted to process further messages. This is a QFE-worthy event. DiagnosticUtility.InvokeFinalHandler(e); } } public void Commit(Message message) { try { if (DebugTrace.Verbose) { DebugTrace.Trace(TraceLevel.Verbose, "Dispatching 2PC Commit message"); if (DebugTrace.Pii) DebugTrace.TracePii(TraceLevel.Verbose, "Sender is {0}", CoordinationServiceSecurity.GetSenderName(message)); } CommitMessage.ReadFrom (message, this.protocolVersion); this.dispatch.Commit (message); } catch (CommunicationException e) { DiagnosticUtility.ExceptionUtility.TraceHandledException(e, TraceEventType.Warning); this.OnMessageException (message, e); } #pragma warning suppress 56500 // Only catch Exception for InvokeFinalHandler catch (Exception e) { DebugTrace.Trace ( TraceLevel.Error, "Unhandled exception {0} dispatching 2PC Commit message: {1}", e.GetType().Name, e ); // Contractually the dispatch object can only throw CommunicationException. // Our implementation is very careful to only throw this type of exception // (e.g. when deserializing a malformed message body or header...) // Any other exception indicates that things have gone seriously wrong, // so we cannot be trusted to process further messages. This is a QFE-worthy event. DiagnosticUtility.InvokeFinalHandler(e); } } public void Rollback(Message message) { try { if (DebugTrace.Verbose) { DebugTrace.Trace(TraceLevel.Verbose, "Dispatching 2PC Rollback message"); if (DebugTrace.Pii) DebugTrace.TracePii(TraceLevel.Verbose, "Sender is {0}", CoordinationServiceSecurity.GetSenderName(message)); } RollbackMessage.ReadFrom (message, this.protocolVersion); this.dispatch.Rollback (message); } catch (CommunicationException e) { DiagnosticUtility.ExceptionUtility.TraceHandledException(e, TraceEventType.Warning); this.OnMessageException (message, e); } #pragma warning suppress 56500 // Only catch Exception for InvokeFinalHandler catch (Exception e) { DebugTrace.Trace ( TraceLevel.Error, "Unhandled exception {0} dispatching 2PC Rollback message: {1}", e.GetType().Name, e ); // Contractually the dispatch object can only throw CommunicationException. // Our implementation is very careful to only throw this type of exception // (e.g. when deserializing a malformed message body or header...) // Any other exception indicates that things have gone seriously wrong, // so we cannot be trusted to process further messages. This is a QFE-worthy event. DiagnosticUtility.InvokeFinalHandler(e); } } public void WsaFault(Message message) { Fault(message); } public void WscoorFault(Message message) { Fault(message); } public void WsatFault(Message message) { Fault(message); } void Fault(Message message) { try { MessageFault fault = MessageFault.CreateFault(message, CoordinationBinding.MaxFaultSize); if (DebugTrace.Verbose) { FaultCode code = Library.GetBaseFaultCode(fault); DebugTrace.Trace(TraceLevel.Verbose, "Dispatching coordinator 2PC fault {0}", code == null ? "unknown" : code.Name); if (DebugTrace.Pii) DebugTrace.TracePii(TraceLevel.Verbose, "Sender is {0}", CoordinationServiceSecurity.GetSenderName(message)); } this.dispatch.Fault (message, fault); } catch (CommunicationException e) { DiagnosticUtility.ExceptionUtility.TraceHandledException(e, TraceEventType.Warning); this.OnMessageException (message, e); } #pragma warning suppress 56500 // Only catch Exception for InvokeFinalHandler catch (Exception e) { DebugTrace.Trace ( TraceLevel.Error, "Unhandled exception {0} dispatching 2PC fault from coordinator: {1}", e.GetType().Name, e ); // Contractually the dispatch object can only throw CommunicationException. // Our implementation is very careful to only throw this type of exception // (e.g. when deserializing a malformed message body or header...) // Any other exception indicates that things have gone seriously wrong, // so we cannot be trusted to process further messages. This is a QFE-worthy event. DiagnosticUtility.InvokeFinalHandler(e); } } public static IWSTwoPhaseCommitParticipant Instance(CoordinationService service, ITwoPhaseCommitParticipant dispatch) { ProtocolVersionHelper.AssertProtocolVersion(service.ProtocolVersion, typeof(TwoPhaseCommitParticipantDispatcher), "V"); //assert valid protocol version switch (service.ProtocolVersion) { case ProtocolVersion.Version10: return new TwoPhaseCommitParticipantDispatcher10(service, dispatch); case ProtocolVersion.Version11: return new TwoPhaseCommitParticipantDispatcher11(service, dispatch); default: return null; // inaccessible path because we have asserted the protocol version } } } [ServiceBehavior ( InstanceContextMode = InstanceContextMode.Single, ConcurrencyMode = ConcurrencyMode.Multiple)] class TwoPhaseCommitParticipantDispatcher10 : IWSTwoPhaseCommitParticipant10 { TwoPhaseCommitParticipantDispatcher twoPhaseCommitParticipantDispatcher; public TwoPhaseCommitParticipantDispatcher10(CoordinationService service, ITwoPhaseCommitParticipant dispatch) { ProtocolVersionHelper.AssertProtocolVersion10(service.ProtocolVersion, typeof(TwoPhaseCommitParticipantDispatcher10), "constr"); this.twoPhaseCommitParticipantDispatcher = new TwoPhaseCommitParticipantDispatcher(service, dispatch); } public Type ContractType { get { return typeof(IWSTwoPhaseCommitParticipant10); } } public void Prepare (Message message) { this.twoPhaseCommitParticipantDispatcher.Prepare(message); } public void Commit (Message message) { this.twoPhaseCommitParticipantDispatcher.Commit(message); } public void Rollback (Message message) { this.twoPhaseCommitParticipantDispatcher.Rollback(message); } public void WsaFault(Message message) { this.twoPhaseCommitParticipantDispatcher.WsaFault(message); } public void WscoorFault(Message message) { this.twoPhaseCommitParticipantDispatcher.WscoorFault(message); } public void WsatFault(Message message) { this.twoPhaseCommitParticipantDispatcher.WsatFault(message); } } [ServiceBehavior ( InstanceContextMode = InstanceContextMode.Single, ConcurrencyMode = ConcurrencyMode.Multiple)] class TwoPhaseCommitParticipantDispatcher11 : IWSTwoPhaseCommitParticipant11 { TwoPhaseCommitParticipantDispatcher twoPhaseCommitParticipantDispatcher; public TwoPhaseCommitParticipantDispatcher11(CoordinationService service, ITwoPhaseCommitParticipant dispatch) { ProtocolVersionHelper.AssertProtocolVersion11(service.ProtocolVersion, typeof(TwoPhaseCommitParticipantDispatcher11), "constr"); this.twoPhaseCommitParticipantDispatcher = new TwoPhaseCommitParticipantDispatcher(service, dispatch); } public Type ContractType { get { return typeof(IWSTwoPhaseCommitParticipant11); } } public void Prepare (Message message) { this.twoPhaseCommitParticipantDispatcher.Prepare(message); } public void Commit (Message message) { this.twoPhaseCommitParticipantDispatcher.Commit(message); } public void Rollback (Message message) { this.twoPhaseCommitParticipantDispatcher.Rollback(message); } public void WsaFault(Message message) { this.twoPhaseCommitParticipantDispatcher.WsaFault(message); } public void WscoorFault(Message message) { this.twoPhaseCommitParticipantDispatcher.WscoorFault(message); } public void WsatFault(Message message) { this.twoPhaseCommitParticipantDispatcher.WsatFault(message); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- CodeBlockBuilder.cs
- InputGestureCollection.cs
- SchemaSetCompiler.cs
- Font.cs
- QilParameter.cs
- DataRowExtensions.cs
- SchemaCollectionPreprocessor.cs
- FocusTracker.cs
- PieceNameHelper.cs
- BufferedStream.cs
- BooleanToVisibilityConverter.cs
- ContentAlignmentEditor.cs
- ClientProxyGenerator.cs
- xsdvalidator.cs
- FontStretch.cs
- VirtualDirectoryMappingCollection.cs
- ContentPresenter.cs
- EnumerableRowCollectionExtensions.cs
- ConfigurationElementProperty.cs
- X509Certificate2.cs
- BufferedWebEventProvider.cs
- IItemContainerGenerator.cs
- ProtocolsConfigurationHandler.cs
- PageHandlerFactory.cs
- Debug.cs
- PageCache.cs
- WindowsNonControl.cs
- DrawingAttributeSerializer.cs
- PenContext.cs
- CheckBoxPopupAdapter.cs
- CompoundFileStorageReference.cs
- WebPartConnection.cs
- TypedElement.cs
- SqlGenericUtil.cs
- QueryCacheManager.cs
- StandardBindingElementCollection.cs
- XmlNullResolver.cs
- DragDropHelper.cs
- MenuItem.cs
- MiniLockedBorderGlyph.cs
- PrintEvent.cs
- AuthenticationModuleElementCollection.cs
- ToolStripStatusLabel.cs
- SqlReorderer.cs
- RotateTransform.cs
- XmlSchemaRedefine.cs
- IPGlobalProperties.cs
- MessageDecoder.cs
- DataGridCellAutomationPeer.cs
- ValidationEventArgs.cs
- TextEditorDragDrop.cs
- CompiledQueryCacheKey.cs
- SoapExtensionTypeElement.cs
- OutputCacheSettingsSection.cs
- PropertyEmitter.cs
- SafeThreadHandle.cs
- OptimizerPatterns.cs
- SqlPersistenceWorkflowInstanceDescription.cs
- ObjectHandle.cs
- ButtonField.cs
- Token.cs
- OperationAbortedException.cs
- ClientConfigurationSystem.cs
- MarkupProperty.cs
- FontUnit.cs
- OutOfProcStateClientManager.cs
- ConfigurationValue.cs
- DocumentPageHost.cs
- HwndKeyboardInputProvider.cs
- MetadataPropertyvalue.cs
- TreeNodeStyle.cs
- PropertyConverter.cs
- WebPartDisplayModeCancelEventArgs.cs
- SqlTopReducer.cs
- XPathDocumentBuilder.cs
- LinkButton.cs
- Color.cs
- GetWinFXPath.cs
- SiteMembershipCondition.cs
- PolicyStatement.cs
- HttpSessionStateWrapper.cs
- XmlSortKeyAccumulator.cs
- AnimationClock.cs
- AttributeParameterInfo.cs
- KeyNotFoundException.cs
- AddInEnvironment.cs
- LogLogRecordHeader.cs
- SafeRightsManagementQueryHandle.cs
- TypeConverter.cs
- PropertiesTab.cs
- WorkingDirectoryEditor.cs
- ComponentCollection.cs
- ReadOnlyDictionary.cs
- BitmapEffectDrawingContent.cs
- DataSourceDescriptorCollection.cs
- SafeNativeMethods.cs
- ProxySimple.cs
- CngProperty.cs
- IssuanceLicense.cs
- EastAsianLunisolarCalendar.cs