Skip to content

Azure.Core 2.0: Update Response, Response<T>, and NullableResponse<T>#42255

Merged
annelo-msft merged 17 commits intoAzure:feature/azure.core-2.0from
annelo-msft:core2.0-response
Feb 28, 2024
Merged

Azure.Core 2.0: Update Response, Response<T>, and NullableResponse<T>#42255
annelo-msft merged 17 commits intoAzure:feature/azure.core-2.0from
annelo-msft:core2.0-response

Conversation

@annelo-msft
Copy link
Member

Description

Many of the basic Azure.Core types now have analogous types in the System.ClientModel library. In order to follow the DRY engineering principle, we plan to update Azure.Core to reuse functionality from these types, using either inheritance or adapters in most cases.

This PR makes the following changes:

  • Azure.Core Response inherits from System.ClientModel PipelineResponse
  • Azure.Core NullableResponse<T> inherits from System.ClientModel ClientResult<T?>

Design Motivation

Despite some complexity in the implementation of the inheritance of Response from PipelineResponse, this is required in order to be able to write a single pipeline policy that will work in both Azure.Core and System.ClientModel pipelines.

Context

This PR is a smaller chunk of #41773 to make it easier to review. In addition, it this PR targets the feature/azure.core-2.0 feature branch because we cannot move the Azure.Core 2.0 integration into main until after System.ClientModel 1.1.0 is GA.

@annelo-msft annelo-msft marked this pull request as ready for review February 28, 2024 17:57
annelo-msft added a commit to annelo-msft/azure-sdk-for-net that referenced this pull request Feb 28, 2024
@azure-sdk
Copy link
Collaborator

azure-sdk commented Feb 28, 2024

API change check

API changes are not detected in this pull request.

@annelo-msft
Copy link
Member Author

Discussed offline that this is OK to merge - we may revisit the internal DefaultResponse class if there is another way to address the need of ClientResult to get a non-null Response from the NullableResponse<T> default constructor.

@annelo-msft annelo-msft merged commit 9a50851 into Azure:feature/azure.core-2.0 Feb 28, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants