Lombok.NET icon indicating copy to clipboard operation
Lombok.NET copied to clipboard

Proxy generation

Open GrahamTheCoder opened this issue 1 year ago • 0 comments

Interesting library!

Is your feature request related to a problem? Please describe. Ultimately, I want a decorator that can serialize to files the inputs/outputs to any method on a given class.

Describe the solution you'd like I can imagine several useful pieces of this puzzle:

  • [Decorator(generateInterface: true)] should generate an interface too
    • [GenerateInterface] attribute to create the interface from the class probably makes sense too but not needed for this
  • The decorators generated could call an empty virual pre/post method.
    • For my use case, just passing an array of object would be fine for the args, but I can see that might make people uncomfortable in terms of allocations/performance in the general case where they are unused. Perhaps better to only call them if a partial class or subclass of the decorator exists and implements one of the methods. Or you could make this a separate attribute such as [Proxy] to more accurately reflect the purpose.

Describe alternatives you've considered What I'll do in the meantime is autogenerate the interface with https://www.nuget.org/packages/InterfaceGenerator/. Use castle.core to proxy the runtime object, recording (serializing) inputs/outputs so that I can characterize exact current behaviour, and reuse the curremnt behaviour without needing the real object and its dependencies.

GrahamTheCoder avatar Sep 22 '24 23:09 GrahamTheCoder