我有一个与 API 通信的类,需要对其接触的任何数据进行一些转换。这个类也是等价的:
public class SerializeMe
{
public SerializeMe(string someString)
{
_someString = someString;
}
private string _someString;
public string TransformedValue
{
get { _someString = TransformToSomething();
return _someString; }
set { _someString = value; }
}
}
对于我的 API 调用者,我通过序列化这些类来记录每个请求和响应。它们几乎充当 xml 模式。
现在一切正常,我唯一的问题是理论上有人可以尝试设置并最终无法获得预期的结果。它主要是一个设计问题,只是试图让我的代码负责。我希望能够在此使用私有集,但 XmlSerializer 抱怨它。
除了序列化程序之外,是否有属性或其他技术能够使转换后的值不可设置?
此外,如果没有选项,则可以选择将属性设置为过时。还有其他更合适的属性可以使用吗?