У меня есть идея использовать интерфейсы в Go для определения интерфейсов стиля RPC. Поэтому для данной службы я мог бы создать такой интерфейс:
type MyService interface{
Login(username, password string) (sessionId int, err error)
HelloWorld(sessionId int) (hi string, err error)
}
То, что я хотел бы сделать, это использовать отражение для реализации этого интерфейса, перевода вызовов метода в вызовы RPC, Marshaling входных параметров и Unmarshaling результатов обратно в вывод метода. Я знаю, что если я смогу получить [] интерфейс {} входных параметров, я могу использовать отражение для вызова службы. Однако я не вижу никакого способа использовать отражение для динамического создания значения, которое реализует интерфейс, вызывая мои функции, использующие отражение. Кто-нибудь знает способ сделать это, даже используя небезопасные?