【问题标题】:Remove field in wsdl in Asp.net webservice在 Asp.net webservice 中删除 wsdl 中的字段
【发布时间】:2009-11-17 13:28:15
【问题描述】:

我正在使用模板引擎生成 dto 类,并希望排除 asmx Web 服务中的某些属性,如果可能,最好的方法是什么?

例如:

[WebMethod]
public ProductPackages GetPackages()
{
   ProductPackages packages = new ProductPackages();
   packages.Packages.add(new PackageDTO());
   return packages;
}

PackageDTO 包含一些与此服务无关的属性。 但是由于可以随时重新生成该类,因此我无法将 [XmlIgnore] 应用于字段。

所以我正在寻找一种在不触及实际课程的情况下应用“排除列表”的方法。 以上只是一个示例,模板引擎为给定项目中的所有表生成 dto,我希望能够在服务中使用它们,而无需维护一大堆几乎相同的类。

【问题讨论】:

    标签: asp.net web-services asmx


    【解决方案1】:

    刚刚遇到同样的问题。您可以通过将字段标记为internal 来排除字段。

    public class Order
    {
        public double OrderPrice;
        internal double ProfitMargin;
        internal string TheTruthAboutThisCustomer;
    }
    

    【讨论】:

    • -1:他说:“但是由于我无法将 [XmlIgnore] 应用于字段,因此可以随时重新生成该类”。我打赌他也不能将字段更改为internal
    【解决方案2】:

    如果您不想返回字段或属性,则不要在返回的对象中包含它!就这么简单。

    【讨论】:

    • -1 他说:“但由于我无法将 [XmlIgnore] 应用于字段,因此可以随时重新生成该类”。我打赌他也不能从他返回的对象中删除它
    • Duh - 他应该返回一个包装对象,只公开他想要返回的字段。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-08
    • 1970-01-01
    • 1970-01-01
    • 2023-03-31
    • 1970-01-01
    • 2015-03-12
    相关资源
    最近更新 更多