This is a DSL which simplifies the writing of ProtoBuf contracts for Zebus.
Zebus.MessageDslprovides the DSL parser, C# and proto generatorsZebus.MessageDsl.Buildprovides a code generator which will translate.msgfiles in your project
- DSL Syntax
- Build-Time Code Generator (
.msgfiles)
Input file:
SomeMessage(int foo, string[] bar)Generated code:
[ProtoContract]
[System.Diagnostics.DebuggerNonUserCode]
[System.CodeDom.Compiler.GeneratedCode("Abc.Zebus.MessageDsl.Build", "0.3.0.0")]
public sealed partial class SomeMessage : IEvent
{
[ProtoMember(1, IsRequired = true)]
public int Foo { get; private set; }
[ProtoMember(2, IsRequired = false)]
public string[] Bar { get; private set; }
private SomeMessage()
{
Bar = Array.Empty<string>();
}
public SomeMessage(int foo, string[] bar)
{
Foo = foo;
Bar = bar;
}
}