小编bgu*_*ura的帖子

如何将消息解析为DynamicMessage类,然后通过字段进行迭代?

这是我想弄清楚的,他们的文档不能很好地解释这一点,至少对我而言......

塞纳里奥:

我有5个原型文件,我使用protoc for C++生成.我的应用程序需要接收消息,然后能够在访问其值和名称时遍历所有字段.

我想要做的是将消息解析到DynamicMessage类中,然后通过字段进行迭代.这样我就不必确切地知道它是什么消息,我可以用一种通用的方式处理它们.

我知道可以通过将消息解析为特定类型来处理消息,然后将它们视为消息基类,但对于我的应用程序来说是不可取的.

看起来我应该通过"--descriptor_set_out"和动态消息类来实现.

我试过的(和失败的):

我将descriptor.proto移动到我的protos文件夹中,并在编译步骤中将其包含在我的其他文件夹中.我还设置了 - descriptor_set_out标志来打印到文件"my_descriptors.pb.ds"

我不知道从哪里开始.

这是我引用的内容,虽然没有太多... 对于长篇文章抱歉,有点模糊的主题命名架构.

此外,如果不清楚,我认为消息不是"未知".我假设仍然需要为每个原型包含相应的标题,因此我的代码知道它处理的"未知"消息.

c++ protocol-buffers

7
推荐指数
1
解决办法
1276
查看次数

多个python Behave环境安装文件

我试图摆脱行为框架中的某些标准并遇到一些问题.是否可以拥有多个具有before*和after*钩子的environment.py文件?

我正在为一套微服务编写测试工具.我有以下目录树.

root
|-- step_defintions
|   |-- service1
|       |-- environment.py
|       |-- __init__.py (steps, imports root.step_defintions.service1.envrionment)
|   |-- service2
|       |-- environment.py
|       |-- __init__.py (steps, imports root.step_defintions.service2.envrionment)
|-- features
|   |-- environment.py
|   |-- steps
|       |-- __init__.py (imports root.step_definitions *)
|   |-- service1
|       |-- 000_service1.feature
|       |-- 001_service1.feature
|   |-- service2
|       |-- 000_service2.feature
Run Code Online (Sandbox Code Playgroud)

我的问题是它似乎没有在step_definitions/service [1 | 2] /envrionment.py文件中的*hook之后获取我之前的*.

我想将这些分开而不是在功能目录中用于组织目的.文件设置一些对象并将它们附加到上下文以跟踪某些步骤之间的数据

python python-behave

5
推荐指数
1
解决办法
963
查看次数

WPF处理拖放以及左键单击

我在DragDrop.DoDragDrop使用左键单击事件时遇到了一些麻烦.

我的控件有几个链接,可以拖动或左键单击访问.

我目前订阅了预览鼠标移动事件,如果按下鼠标左键,我将启动拖放事件.

在另一个回叫中我处理鼠标左键向上和向上事件以检查点击.反正有没有检查DragDrop是否实际发生了拖放事件?

c# wpf

4
推荐指数
1
解决办法
5770
查看次数

在实现IComparable时,为什么相同的项目不能以相同的顺序放置

我发现当我为我的一个类实现CompareTo(..)时,机器之间的排序是不一致的.当两个对象相等时,它们并不总是以相同的顺序排序.我假设一些单线程迭代方法将用于排序,所以我会假设一致的排序.

鉴于以下课程..

class Property : ICompareable<Property> 
{
    public int Value;
    public int Name;

    public int CompareTo(Property other)
    {
        if(this.Value > other.Value)
            return 1;
        if(this.Value < other.Value)
            return -1;
        return 0;
    }
}
Run Code Online (Sandbox Code Playgroud)

并给出以下对象

{ 
   List.add(new Property( name="apple", value = 1) );
   List.add(new Property( name="grape", value = 2) );
   List.add(new Property( name="banana", value = 1) );
}
Run Code Online (Sandbox Code Playgroud)

当我执行

List.sort();
Run Code Online (Sandbox Code Playgroud)

然后当使用索引单步执行列表时,banana和apple的顺序会根据我正在执行代码的PC而改变.为什么是这样?

.net c#

3
推荐指数
1
解决办法
877
查看次数

Golang TypeOf没有实例并将结果传递给func

是否可以在没有实例的情况下获得"类型"?我已经看到了一些使用的例子,reflect.TypeOf()但它们都处理了一个实例.

以下是我尝试做的事情的片段:

import (
    "net/http"
)

type ParamReader struct {
    // The request from which to extract parameters
    context *http.Request
}

// Initialize the ParamReader with a specific http request. This serves
// as the 'context' of our param reader. All subsequent calls will validate
// the params that are present on this assigned http.Request
func (p *ParamReader) Context(r *http.Request) {
    p.context = r
}

// Validate that a given param 's' is both present and a valid …
Run Code Online (Sandbox Code Playgroud)

reflection types go

2
推荐指数
1
解决办法
473
查看次数

标签 统计

c# ×2

.net ×1

c++ ×1

go ×1

protocol-buffers ×1

python ×1

python-behave ×1

reflection ×1

types ×1

wpf ×1