在 Serializable 类中使用 SecurityPermission 的重要性是什么?
在 [Microsoft's Site][1] 上的一篇文章中,他们建议您编写一个 Serializable 类,如下所示:
[Serializable]
public class PleaseSaveMe : ISerializable
{
public readonly int Age;
public readonly string Name;
public int KarateSkills;
public PleaseSaveMe(int Age, string Name)
{
this.Age = Age;
this.Name = Name;
}
// Serialization Methods
protected PleaseSaveMe(SerializationInfo info, StreamingContext context)
{
Age = info.GetInt32("Age");
Name = info.GetString("Name");
KarateSkills = info.GetInt32("KarateSkills");
}
[SecurityPermission(SecurityAction.LinkDemand, Flags=SecurityPermissionFlag.SerializationFormatter)]
void ISerializable.GetObjectData(SerializationInfo info, StreamingContext context)
{
info.AddValue("Age", Age);
info.AddValue("Name", Name);
info.AddValue("KarateSkills", KarateSkills);
}
}
但是在 SecurityAction.LinkDemand 的文档中,它明确表示不要在 .NET 4.0 中使用它(这是我正在使用的)。我应该改用什么?那个属性甚至是必要的吗?
威廉