.proto 파일을 사용하여 protobuf 메시지를 지정합니다. [default=]
을 사용하지만 값이 설정된 위치를 볼 수 없습니다. 자동 생성 된 .cs 파일에 없습니다. 메시지를 만들 때 일부 기본값을 설정하고 싶습니다. 자동 생성 된 .cs 파일 안에 있기 때문에 기본 생성자를 사용할 수 없습니다.protobuf-net .proto 파일의 [default]가 인식되지 않습니까?
이 아이디어를 해결하는 방법은 무엇입니까?
내 .proto 파일 :
package Messages;
message Ack
{
required bool is_error = 1 [default=false];
required string message = 2 [default="ok"];
required string request_id = 3;
}
가 생성
namespace Messages
{
[global::System.Serializable, global::ProtoBuf.ProtoContract([email protected]"Ack")]
public partial class Ack : global::ProtoBuf.IExtensible
{
public Ack() {}
private bool _is_error;
[global::ProtoBuf.ProtoMember(1, IsRequired = true, [email protected]"is_error", DataFormat = global::ProtoBuf.DataFormat.Default)]
public bool is_error
{
get { return _is_error; }
set { _is_error = value; }
}
private string _message;
[global::ProtoBuf.ProtoMember(2, IsRequired = true, [email protected]"message", DataFormat = global::ProtoBuf.DataFormat.Default)]
public string message
{
get { return _message; }
set { _message = value; }
}
private string _request_id;
[global::ProtoBuf.ProtoMember(3, IsRequired = true, [email protected]"request_id", DataFormat = global::ProtoBuf.DataFormat.Default)]
public string request_id
{
get { return _request_id; }
set { _request_id = value; }
}
private global::ProtoBuf.IExtension extensionObject;
global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing)
{ return global::ProtoBuf.Extensible.GetExtensionObject(ref extensionObject, createIfMissing); }
}
내가 사용하는 비주얼 스튜디오 영어 2013 업데이트 3 protobuf - 네트의 최신 버전.
음, 윙윙 거리다. 이것은 당황 스럽다. 귀하의 편집으로 동일한 결과를 얻었습니다. 나는 바퀴가 어딘가에서 떨어 졌음에 틀림 없어! 나는 조사해야 할 것이다. 나는 그것에 대한 즉각적인 대답이 없다. –
이 Marc에 대한 소식이 있습니까? – Michael