Raiqub.Generators.InterpolationCodeWriter.CSharp.Sources
2.0.4
Prefix Reserved
dotnet add package Raiqub.Generators.InterpolationCodeWriter.CSharp.Sources --version 2.0.4
NuGet\Install-Package Raiqub.Generators.InterpolationCodeWriter.CSharp.Sources -Version 2.0.4
<PackageReference Include="Raiqub.Generators.InterpolationCodeWriter.CSharp.Sources" Version="2.0.4"> <PrivateAssets>all</PrivateAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets> </PackageReference>
<PackageVersion Include="Raiqub.Generators.InterpolationCodeWriter.CSharp.Sources" Version="2.0.4" />
<PackageReference Include="Raiqub.Generators.InterpolationCodeWriter.CSharp.Sources"> <PrivateAssets>all</PrivateAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets> </PackageReference>
paket add Raiqub.Generators.InterpolationCodeWriter.CSharp.Sources --version 2.0.4
#r "nuget: Raiqub.Generators.InterpolationCodeWriter.CSharp.Sources, 2.0.4"
#:package Raiqub.Generators.InterpolationCodeWriter.CSharp.Sources@2.0.4
#addin nuget:?package=Raiqub.Generators.InterpolationCodeWriter.CSharp.Sources&version=2.0.4
#tool nuget:?package=Raiqub.Generators.InterpolationCodeWriter.CSharp.Sources&version=2.0.4
Raiqub.Generators.InterpolationCodeWriter.CSharp.Sources
Provides source files for writing source generators that are embedded directly into your project. This is a development-only dependency with no runtime overhead.
This is the recommended package for most source generator projects. It embeds the source code of both InterpolationCodeWriter and InterpolationCodeWriter.CSharp directly into your project, avoiding any external assembly dependency.
Installation
dotnet add package Raiqub.Generators.InterpolationCodeWriter.CSharp.Sources
Quick Start
Implement ICodeWriter<T> to define a code writer and use CodeWriterDispatcher<T> to dispatch source generation:
public class MyWriter : ICodeWriter<MyModel>
{
public bool CanGenerateFor(MyModel model) => model.Properties.Count > 0;
public string GetFileName(MyModel model) => $"{model.Namespace ?? "_"}.{model.Name}Extensions.g.cs";
public void Write(SourceTextWriter writer, MyModel model)
{
writer.WriteLine($"namespace {model.Namespace};");
writer.WriteLine();
writer.WriteLine($"public static partial class {model.Name}Extensions");
writer.WriteLine("{");
writer.PushIndent();
// Write members using string interpolation...
writer.PopIndent();
writer.WriteLine("}");
}
}
Then dispatch generation using CodeWriterDispatcher<T>:
private static readonly CodeWriterDispatcher<MyModel> s_dispatcher =
new([new MyWriter()]);
private static void Emit(
SourceProductionContext context,
ImmutableArray<MyModel> types)
{
s_dispatcher.GenerateSources(types, context);
}
Compatibility
Requires .NET 6.0 SDK or later, but you can target earlier frameworks.
Documentation
For the full documentation and guides, see the project repository.
License
See the LICENSE file for details.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
This package has no dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
See https://github.com/skarllot/SourceGenerators/releases for release notes.