RxSourceGenerator
December 10, 2020 ยท View on GitHub
What is this?
This source code generator generates Reactive Extensions methods for class events. For example, there is some class with an event:
public partial class Example
{
public event Action<int, string, bool> ActionEvent;
}
If you enter the code:
Example example = new Example();
example.RxActionEvent()
The generator will create a file with extension methods:
using System;
using System.Reactive.Linq;
namespace RxMethodGenerator{
public static class RxGeneratedMethods{
public static IObservable<(System.Int32 Item1Int32, System.String Item2String, System.Boolean Item3Boolean)> RxActionEvent(this TestConsoleApp.Example obj)
{
if (obj == null) throw new ArgumentNullException(nameof(obj));
return Observable.FromEvent<System.Action<System.Int32, System.String, System.Boolean>, (System.Int32 Item1Int32, System.String Item2String, System.Boolean Item3Boolean)>(
conversion => (obj0, obj1, obj2) => conversion((obj0, obj1, obj2)),
h => obj.ActionEvent += h,
h => obj.ActionEvent -= h);
}
}
}
What does it look like in Visual Studio?
