首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从FaultContract rpc条目生成.proto属性

从FaultContract rpc条目生成.proto属性
EN

Stack Overflow用户
提问于 2010-09-13 11:42:25
回答 2查看 285关注 0票数 2

我在为数据契约工作的项目上使用protobuf,手工创建.proto文件,并让定制工具输出C#代码,而这正是它所做的。我也开始在服务契约中使用它,并且服务接口也被创建得很好。

为了连接到我正在使用的某些系统,所以我启用了datacontracts生成器选项,尽管存在System.ServiceModel属性,但似乎没有任何方法来声明该服务可能引发的特定故障。

所以我的问题基本上是:

exceptions/faults.

  • I的
  • 协议缓冲区语言似乎没有任何构造,无法看到由
    • -net生成的生成FaultContract
    • 接口的任何protobuf net选项没有声明为分部,因此我不能增加生成的代码。

是否有任何方法来声明protobuf-net中的服务WCF操作错误,或者这是否是我必须等待版本2的东西?

非常感谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-09-14 11:14:47

我不知道为什么不将其声明为partial interface,因为在C# 2.0中,这似乎是非常高兴的;当我得到第二次更改时,我会更改它,但是请注意,您可以在本地应用手动更改--只需编辑csharp.xslt文件。现在,xslt并不是每个人都喜欢的东西,但它应该是1行更改(接近单词interface) --实际上,它可能是在这里添加的partial

代码语言:javascript
复制
<xsl:template match="ServiceDescriptorProto">
    <xsl:if test="($optionClientProxy or $optionDataContract)">
    [global::System.ServiceModel.ServiceContract(Name = @"<xsl:value-of select="name"/>")]</xsl:if>
    public /* HERE => */ partial /* <= HERE */ interface I<xsl:value-of select="name"/>
    {
      <xsl:apply-templates select="method"/>
    }

    <xsl:if test="$optionProtoRpc">
    public class <xsl:value-of select="name"/>Client : global::ProtoBuf.ServiceModel.RpcClient
    {
      public <xsl:value-of select="name"/>Client() : base(typeof(I<xsl:value-of select="name"/>)) { }
      <xsl:apply-templates select="method/MethodDescriptorProto" mode="protoRpc"/>
    }
    </xsl:if>
    <xsl:apply-templates select="." mode="clientProxy"/>

</xsl:template>

由于xslt是可调整的,所以您应该能够应用所需的任何其他更改。

票数 2
EN

Stack Overflow用户

发布于 2010-09-13 13:47:50

这并不能直接回答你的问题,但无论如何可能是合适的

protobuf不需要.proto文件来工作,因此只编写C#类并用WCF属性(和FaultContract属性)修饰它们的工作量与创建proto的(手动)以生成C#类的工作量相同。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3700047

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档