Это возможно с помощью пользовательского кода c. Пользовательский код c может быть определен как
type StubbedCodec struct{}
func (cb StubbedCodec) Marshal(v interface{}) ([]byte, error) {
return v.([]byte), nil
}
func (cb StubbedCodec) Unmarshal(data []byte, v interface{}) error {
ba, _ := v.([]byte)
for index, byte := range data {
ba[index] = byte
}
return nil
}
Получив его, мы можем передать код c в качестве опции набора как
grpc.Dial(grpcServer, grpc.WithInsecure(), grpc.WithBlock(), grpc.WithDefaultCallOptions(grpc.ForceCodec(StubbedCodec{})))
Это заставит grp c для использования вашего кода c, который в основном ничего не делает (как определено выше).