PetaPoco - 在WCF响应中包含自定义部分类属性

时间:2012-03-12 13:19:16

标签: wcf petapoco

我一直在尝试将PetaPoco用于我正在工作的一个小项目,到目前为止它已经很棒了。

我创建了一些额外的非自动生成的部分类来保存各种计算值,如下面的示例所示。我无法将这些附加属性序列化为WCF响应,但自动生成的东西中的所有属性都可以很好地序列化。我尝试在这些自定义属性上使用[Serializable]和[DataContract],但它们完全破坏了WCF服务。

有什么想法吗?

public partial class Session
    {
        [ResultColumn]
        public int ConnectedUserCount
        {
            get
            {
                AssistedServiceDB db = new AssistedServiceDB();
                return db.ExecuteScalar<int>("SELECT Count(*) FROM Session_AssistedServiceUser WHERE IsConnected = 1");
            }
        }  

1 个答案:

答案 0 :(得分:1)

要使partial WCF DataContracts起作用,需要注意几件事。首先,如果另一个Session类标有DataContract,那么此类也需要以相同的方式标记。这假设ResultSession类也可序列化和/或标记为DataContract。另一个问题是WCF要求属性至少具有 private setters ,因此需要将ConnectedUserCount属性更改为具有一个属性。