ormlite-servicestack,C#,ormlite Servicestack" /> ormlite-servicestack,C#,ormlite Servicestack" />

C# ServiceStack或MLite能否使用非公共setter设置属性?

C# ServiceStack或MLite能否使用非公共setter设置属性?,c#,ormlite-servicestack,C#,ormlite Servicestack,当ServiceStack或MLite的setter不是公共的时,有没有办法使其成为属性?在某些情况下,这将非常有助于使类更安全地使用,例如,当有两个依赖属性时,我希望用户调用一个方法来同时设置这两个属性。不过,OrmLite在从数据库读取时仍然需要能够设置它们,因此如果它们可以是私有的,那就太好了。一个人为的例子: public class MyObject { public string One { get; private set; } pu

当ServiceStack或MLite的setter不是公共的时,有没有办法使其成为属性?在某些情况下,这将非常有助于使类更安全地使用,例如,当有两个依赖属性时,我希望用户调用一个方法来同时设置这两个属性。不过,OrmLite在从数据库读取时仍然需要能够设置它们,因此如果它们可以是私有的,那就太好了。一个人为的例子:

    public class MyObject
    {
        public string One { get; private set; }
        public string Two { get; private set; }

        public void SetOneOrTwo(bool one, string value)
        {
            if (one)
            {
                One = value;
                Two = null;
            }
            else
            {
                One = null;
                Two = value;
            }
        }
    }

不,(与大多数ServiceStack一样)使用代码优先的POCO,并通过只填充公共可写属性来尊重您的模型公共API。

但我真的希望我的API不受尊重!:)更严重的是,如果我想保存一些不属于公共API的数据,该怎么办?@EM0将其公开。属性必须是公共的,才能影响RDBMS表模式。