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
- TextServicesPropertyRanges.cs
- Interlocked.cs
- ProviderException.cs
- CopyCodeAction.cs
- CodeConditionStatement.cs
- XmlCodeExporter.cs
- StrongName.cs
- ServiceModelPerformanceCounters.cs
- PropertyNames.cs
- DataError.cs
- Condition.cs
- OutputCacheSection.cs
- PresentationSource.cs
- IndexerNameAttribute.cs
- LineGeometry.cs
- _HeaderInfoTable.cs
- SimpleWebHandlerParser.cs
- ViewBox.cs
- ContextStack.cs
- DetailsViewDeletedEventArgs.cs
- EntityKey.cs
- ToolStripItemTextRenderEventArgs.cs
- FrameworkElement.cs
- ObjRef.cs
- ExtentKey.cs
- DataGridViewDataErrorEventArgs.cs
- TemplatedWizardStep.cs
- WindowsImpersonationContext.cs
- QueryValue.cs
- Accessors.cs
- DecimalAnimationBase.cs
- Stylesheet.cs
- BordersPage.cs
- SecurityVersion.cs
- StandardToolWindows.cs
- MediaElement.cs
- FilterInvalidBodyAccessException.cs
- ActivityInstanceMap.cs
- SoapEnumAttribute.cs
- StreamReader.cs
- DataGridViewDataErrorEventArgs.cs
- UTF32Encoding.cs
- AudioBase.cs
- Soap.cs
- OdbcError.cs
- XsltArgumentList.cs
- ProgressBar.cs
- MarkupExtensionParser.cs
- SiblingIterators.cs
- SnapshotChangeTrackingStrategy.cs
- WebPartMenuStyle.cs
- ReferencedAssemblyResolver.cs
- RefExpr.cs
- SizeKeyFrameCollection.cs
- Drawing.cs
- HorizontalAlignConverter.cs
- WebScriptMetadataMessage.cs
- FixedSOMImage.cs
- CustomError.cs
- EllipseGeometry.cs
- BrowserDefinition.cs
- LinqDataSourceDisposeEventArgs.cs
- WebPartConnectionsEventArgs.cs
- AuthStoreRoleProvider.cs
- KeyedPriorityQueue.cs
- cache.cs
- ScaleTransform.cs
- LinqDataView.cs
- TagPrefixCollection.cs
- WorkflowQueuingService.cs
- ByValueEqualityComparer.cs
- DataPointer.cs
- HtmlAnchor.cs
- SqlServer2KCompatibilityAnnotation.cs
- TreeNodeStyleCollection.cs
- MasterPageCodeDomTreeGenerator.cs
- GifBitmapDecoder.cs
- DataRecordInfo.cs
- FixedSOMPage.cs
- KeyConverter.cs
- LineBreak.cs
- DataControlFieldCell.cs
- ExplicitDiscriminatorMap.cs
- ResourceReferenceKeyNotFoundException.cs
- ApplicationSettingsBase.cs
- RegexInterpreter.cs
- ScopelessEnumAttribute.cs
- QueryOutputWriter.cs
- TypeLoadException.cs
- SchemaTableOptionalColumn.cs
- StylusCollection.cs
- HttpResponse.cs
- GACMembershipCondition.cs
- SimpleHandlerFactory.cs
- TextSchema.cs
- XmlSchemaType.cs
- SizeF.cs
- RegexCaptureCollection.cs
- ObjectContextServiceProvider.cs
- PolyLineSegment.cs