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