不确定问题的措辞是否准确,但这是我想做的:我想对一个包含一些字符串的类进行数据绑定(bind):
class MyClass
{
public string MyProperty { get; set; }
public string MyProperty2 { get; set; }
}
数据绑定(bind)时,一切正常。在后端,我正在写入一个文件,我希望 MyProperty2 始终使用某种加密算法进行加密。我希望我的后端代码在不需要知道需要加密的情况下编写每个字符串(我希望类知道它应该被加密,而不是消费者)。我可以使用类型转换器或类似的东西来做到这一点吗?
编辑:还有其他情况。一些 bool 值我想格式化为“Y”或“N”,其他 bool 值我想格式化为“启用”/“禁用”等。我可以编写(并且已经编写)辅助方法并让文件编写器调用辅助方法在适当的情况下,我只是想知道是否有一种方法可以在文件编写器不需要知道哪些对象需要哪种格式并让对象将其告知文件编写器的情况下执行此操作。
最佳答案
我不确定你到底想达到什么目的,但你可以使用一个加密的私有(private)支持字段,然后在属性 setter 中解密/加密。写入文件时,写入支持字段,而不是属性。
private string encryptedProperty2;
public string MyProperty2
{
get { return this.Decrypt( this.encryptedProperty2 ); }
set { this.encryptedProperty2 = this.Encrypt( value ); }
}
private void Init()
{
...
this.encryptedProperty2 = ... read from file ...
...
}
public void Save()
{
...
writer.Write( this.encryptedProperty2 );
...
}
或者,您可以在读取/写入文件时进行加密。但是,如果它很敏感,您可能希望将其加密保存在内存中。
关于c# - 如何提供属性级字符串格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2882797/