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