To implement an interface in a class, struct or other interface, use:
BuildableExpression.SourceCode(sc =>
{
// Define a custom interface type:
var messagerInterface = sc.AddInterface("IMessager", itf =>
{
// Make IMessager implement IDisposable:
itf.SetImplements<IDisposable>();
// Add a single, void method:
itf.AddMethod("SendMessage", typeof(void), m =>
{
// Add a single string method parameter:
m.AddParameter<string>("message");
});
});
// Add a class to implement some interfaces:
sc.AddClass("Implementer", cls =>
{
// Implement the custom interface:
cls.SetImplements(messagerInterface, impl =>
{
// Implement the IMessager.SendMessage() method:
impl.AddMethod("SendMessage", m =>
{
// Empty body for this example:
m.SetBody(Expression.Empty());
});
// Implement the IDisposable.Dispose() method:
impl.AddMethod("Dispose", m =>
{
// Empty body for this example:
m.SetBody(Expression.Empty());
});
});
});
});