dotnet/aspnetcore

FileMultipartSection.FileStream and MultipartSection.Body Nullability Differences

Open

#39,966 opened on Feb 3, 2022

View on GitHub
 (3 comments) (0 reactions) (0 assignees)C# (10,653 forks)batch import
api-suggestionarea-networkinghelp wantedinvestigate

Repository metrics

Stars
 (37,933 stars)
PR merge metrics
 (Avg merge 16d 9h) (258 merged PRs in 30d)

Description

Background and Motivation

Not sure if this is really an API proposal, but it was the only issue template that made sense to me.

I noticed FileMultipartSection.FileStream is marked as a Nullable Stream, but MultipartSection.Body Stream is not Nullable. It looks like FileMultipartSection.FileStream is only set from the MultipartSection.Body so I would assume that both would have the same Nullable reference type. My only thought is that MultipartSection.Body has a public setter so it "could" be set to null, but if so then FileMultipartSection.FileStream should be null too. I could be overlooking something.

Proposed API

Both to have the same Nullability if that assumption is correct

Usage Examples

Either changing the MultipartSection Body property to

public Stream? Body { get; set; } = default;

or changing the FileMultipartSection.FileStream to

public Stream FileStream => Section.Body;

Alternative Designs

Leave it as is. I could be looking at this wrong so I apolgize.

Risks

Could add warnings / errors to existing code that uses the Nullable feature if the change was to Stream and not Stream?

Contributor guide