build and test csharp decoder

PiperOrigin-RevId: 822451411
diff --git a/.github/workflows/build_test.yml b/.github/workflows/build_test.yml
index 8dfda22..fe7206b 100644
--- a/.github/workflows/build_test.yml
+++ b/.github/workflows/build_test.yml
@@ -355,3 +355,21 @@
         python2.7 -VV
         python2.7 -c "import sys; sys.exit('Invalid python version') if '.'.join(map(str,sys.version_info[0:2])) != '2.7' else True"
         python2.7 setup.py test
+
+  build_test_dotnet:
+    name: Build and test with .NET
+    runs-on: ubuntu-latest
+    steps:
+
+    - name: Checkout the source
+      uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
+      with:
+        submodules: false
+        fetch-depth: 1
+
+    - name: Build / Test
+      run: |
+        cd csharp
+        dotnet build brotlidec.csproj --configuration Release
+        dotnet test brotlidec.Tests.csproj
+
diff --git a/csharp/brotlidec.Tests.csproj b/csharp/brotlidec.Tests.csproj
new file mode 100644
index 0000000..2209005
--- /dev/null
+++ b/csharp/brotlidec.Tests.csproj
@@ -0,0 +1,20 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <TargetFramework>net9.0</TargetFramework>
+    <EnableDefaultCompileItems>false</EnableDefaultCompileItems>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <!-- Both regular sources and test sources -->
+    <Compile Include="org\brotli\dec\*.cs" />
+  </ItemGroup>
+
+  <ItemGroup>
+    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="18.0.0" />
+    <!-- Stick to NUnit3 until tests are regenerated -->
+    <PackageReference Include="NUnit" Version="3.14.0" />
+    <PackageReference Include="NUnit3TestAdapter" Version="5.2.0" />
+  </ItemGroup>
+
+</Project>
diff --git a/csharp/brotlidec.csproj b/csharp/brotlidec.csproj
new file mode 100644
index 0000000..696413c
--- /dev/null
+++ b/csharp/brotlidec.csproj
@@ -0,0 +1,13 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <TargetFramework>net9.0</TargetFramework>
+    <EnableDefaultCompileItems>false</EnableDefaultCompileItems>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <Compile Include="org\brotli\dec\*.cs" />
+    <Compile Remove="**\*Test.cs" />
+  </ItemGroup>
+
+</Project>