c# 中有关反序列化返回的object转换成xml对应的对象时问题

代码为生成类库时反序列化返回的object为什么转换成xml对应的类不成功,而生成为Windows程序时就可以成功

提示无法将类型为‘a’的对象强制转换为类型‘a’

#region 反序列化
/// <summary>
/// 反序列化
/// </summary>
/// <param name="type">类型</param>
/// <param name="xml">XML字符串</param>
/// <returns></returns>
public static object Deserialize(Type type, string xml)
{
    try
    {
        using (StringReader sr = new StringReader(xml))
        {
            XmlSerializer xmldes = new XmlSerializer(type);
            return xmldes.Deserialize(sr);
        }
    }
    catch (Exception e)
    {

        return null;
    }
}
/// <summary>
/// 反序列化
/// </summary>
/// <param name="type"></param>
/// <param name="xml"></param>
/// <returns></returns>
public static object Deserialize(Type type, Stream stream)
{
    XmlSerializer xmldes = new XmlSerializer(type);
    return xmldes.Deserialize(stream);
}
#endregion

#region 序列化
/// <summary>
/// 序列化
/// </summary>
/// <param name="type">类型</param>
/// <param name="obj">对象</param>
/// <returns></returns>
public static string Serializer(Type type, object obj)
{
    MemoryStream Stream = new MemoryStream();
    XmlSerializer xml = new XmlSerializer(type);
    try
    {
        //序列化对象
        xml.Serialize(Stream, obj);
    }
    catch (InvalidOperationException)
    {
        throw;
    }
    Stream.Position = 0;
    StreamReader sr = new StreamReader(Stream);
    string str = sr.ReadToEnd();

    sr.Dispose();
    Stream.Dispose();

    return str;
}

#endregion