XmlDeserialization在中等信任级别失败

时间:2011-06-18 14:44:54

标签: xml-deserialization medium-trust

我们的网站托管在中等信任级别,托管服务提供商拒绝给予我们完全信任。我们的代码尝试使用以下代码片段反序列化代码,但失败并出现reflectionpermission错误。在调试时,我得到“XML文档中存在错误(71,6)。”错误。完全信任它完美无缺。在我们决定转移到完全信任托管服务提供商之前,请有人建议我如何解决这个问题。

    public static T Decrypt<T>(Stream stream)
    {
        Rijndael rij = Rijndael.Create();
        rij.Key = key;
        rij.IV = iv;
        T obj = default(T); // assigns null if T is a reference type, or 0 (zero) for value types

        using (CryptoStream cs = new CryptoStream(stream, rij.CreateDecryptor(), CryptoStreamMode.Read))
        {
            using (GZipStream zs = new GZipStream(cs, CompressionMode.Decompress))
            {
                XmlSerializer xs = new XmlSerializer(typeof(T));
                obj = (T)xs.Deserialize(zs);

                zs.Close();
            }
            cs.Close();
        }

        return obj;
    }

1 个答案:

答案 0 :(得分:1)

打开项目属性并将“生成序列化程序集”设置为“on”。这将使编译器在编译时生成序列化程序集,而不是动态生成。只需确保部署序列化程序集。