Как лучше организовать библиотеку которая под капотом просто проксирует вызовы в grpc:
interface IExample {
Task<SomeEnum> Test();
}
class ExampleImpl : IExample {
Task<SomeEnum> Test() {
return _grpcClient.Test();
}
}
IExample ExampleFactory.Create()
Для примера возьмём SomeEnum. Если его просто экспортировать то всем проектам ссылающимся на мою библиотеку придётся подключать Protobuf (т.к. в ответных структурах может быть bytes, который превращаться в класс из Protobuf), чего хотелось бы избежать. Если в самой библиотеке держать все нужные структуры\перечисления то появляются проблемы с дублированием кода и синхронизацией с .proto файлами.
Может есть ещё варианты?