Its really hard to find any information on IAsyncEnumerable
, other than a few mentions in the 'What's New c# 8.0' articles. Trying to use it in Visual Studio 2019 with netstandard 2.0 and C# 8 enabled, it does recognize the class but i get a ton of errors on build:
Asked
Active
Viewed 2,775 times
5

Theodor Zoulias
- 34,835
- 7
- 69
- 104

maraaaaaaaa
- 7,749
- 2
- 22
- 37
-
are there images of error messages? – vasily.sib Apr 24 '19 at 03:02
-
C# 8 supports those things, but doesn't define them. You need to target a release of .NET that does, which, at the moment, is only the preview release of .NET Core 3.0. – Etienne de Martel Apr 24 '19 at 03:04
4 Answers
7
C# 8 supports these features. However, this wont work with .Net standard 2.0
Applies to
.NET Core 3.0 Preview 3
.NET Standard 2.1 Preview
You will have to get either one of the previews.
You can find more information on .Net Core 3 Preview here

TheGeneral
- 79,002
- 9
- 103
- 141
-
3So just a heads up for anyone planning on trying this, unfortunately it wont work if you use `Net Core 3.0` along with `EntityframeworkCore`, because of the following error: `Error CS0433 The type 'IAsyncEnumerable
' exists in both 'System.Interactive.Async, Version=3.2.0.0, Culture=neutral, PublicKeyToken=94bc3704cddfc263' and 'System.Runtime, Version=4.2.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'` – maraaaaaaaa Apr 24 '19 at 03:52 -
Just ran into the above comment myself. Was trying to try out IAsyncEnumerable with providing a InMemory database for data but nope! Dreams crushed. – Cubicle.Jockey Aug 08 '19 at 19:43
5
For .NET Standard 2.0 you should install Microsoft.Bcl.AsyncInterfaces
https://www.nuget.org/packages/Microsoft.Bcl.AsyncInterfaces/

Vlad
- 1,017
- 1
- 15
- 18
-
Please don't just post some tool or library as an answer. At least demonstrate [how it solves the problem](https://meta.stackoverflow.com/a/251605) in the answer itself. – Yunnosch Sep 30 '20 at 07:13
-
Since the problem is about missing member IAsyncEnumerable .NET Standard 2.0 - this packet publishied by Microsoft for compatibility in .NET Standard 2.0. You don't need do anything acept install it. – Vlad Sep 30 '20 at 11:47
5
The answer of Vlad is the right one.
- Add LangVersion 8.0 to the desired Projects PropertGroup
- Add the Microsoft.Bcl.AsyncInterfaces as PackageReference
For example: MyDummyLib.csproj
<PropertyGroup>
<TargetFrameworks>netstandard2.0;netstandard2.1</TargetFrameworks>
<LangVersion>8.0</LangVersion>
<AssemblyName>MyDummyLib</AssemblyName>
<RootNamespace>MyDummyLib</RootNamespace>
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
</PropertyGroup>
<ItemGroup Condition="'$(TargetFramework)'=='netstandard2.0'">
<PackageReference Include="Microsoft.Bcl.AsyncInterfaces" Version="1.1.1" />
</ItemGroup>

damjik
- 51
- 1
- 1