From a3601bc6239a8c618ad82e6604798daf18a521b8 Mon Sep 17 00:00:00 2001 From: daver32 <38791383+daver32@users.noreply.github.com> Date: Sat, 10 Apr 2021 01:28:22 +0200 Subject: [PATCH] Create README.md --- README.md | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..aac78d2 --- /dev/null +++ b/README.md @@ -0,0 +1,43 @@ +# InterfaceGenerator [![NuGet Version](http://img.shields.io/nuget/v/InterfaceGenerator.svg?style=flat)](https://www.nuget.org/packages/InterfaceGenerator/) + +A simple source generator that creates interfaces by implementation. + +Example user implementation: +```cs +[GenerateAutoInterface] +public class SampleService : ISampleService +{ + public double Multiply(double x, double y) + { + return x * y; + } + + public int NiceNumber => 69; +} +``` + +Auto generated interface: +```cs +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. +