Files
InterfaceGenerator/README.md
T
2021-04-10 01:41:20 +02:00

1.1 KiB

InterfaceGenerator NuGet Version

A simple source generator that creates interfaces by implementations.

Example user implementation:

[GenerateAutoInterface]
public class SampleService : ISampleService
{
    public double Multiply(double x, double y)
    {
        return x * y;            
    }

    public int NiceNumber => 69;
}

Auto generated interface:

public partial interface ISampleService
{
    double Multiply(double x, double y);
    int NiceNumber { get; }
}

Supports:

  • Methods, properties, indexers.
  • Default arguments, params arguments.
  • Generic types and methods.
  • XML docs.
  • Explicit interface names (using the Name property on GenerateAutoInterface).
  • Explicit interface visibility (using the VisibilityModifier property on GenerateAutoInterface).
  • Explicitly excluding a member from the interface (using [AutoInterfaceIgnore]).

Missing:

  • Events.
  • Nested types.
  • Probably a bunch of edge cases I forgot about.