好的,我可能在这里遇到了一次史诗般的失败,但是我的脑海想说这应该可行。
假定DataProtect.DecryptData将加密的字符串作为输入,将解密的字符串作为输出。假定deserializeXML创建适当的对象,然后从新解密的字符串返回它。
所以。为什么不起作用?
class ArrivedDetails
{
///...
internal ArrivedDetails(string encrypted)
{
this = DataProtect.deserializeXML(DataProtect.DecryptData(encrypted));
}
///...
给我一个错误
Cannot assign to '<this>' because it's read only
更具体地说,如何使它正常工作?我本质上想解密该对象的XML序列化版本,然后在构造函数中反序列化它。
我对“您不能”(带有解释)持开放态度,因为我可以将其放在其他位置并仅分配值,但是我的想法是这样的。
最佳答案
不,使用构造函数无法实现,您无法重新分配this
。
改用静态方法:
public static ArrivedDetails CreateFromString(string encrypted)
{
return DataProtect.deserializeXML(DataProtect.DecryptData(encrypted));
}
叫它:
ArrivedDetails details = ArrivedDetails.CreateFromString(encrypted);
关于c# - 反序列化到自己,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5398904/