当前位置:  开发笔记 > 编程语言 > 正文

不使用文件系统在C#中进行序列化

如何解决《不使用文件系统在C#中进行序列化》经验,为你挑选了3个好方法。

我有一个简单的2D字符串数组,我想把它填入MOSS中的SPFieldMultiLineText.这映射到ntext数据库字段.

我知道我可以序列化为XML并存储到文件系统,但我想在不触及文件系统的情况下进行序列化.

public override void ItemAdding(SPItemEventProperties properties)
{
    // build the array
    List> matrix = new List>();
    /*
    * populating the array is snipped, works fine
    */
    // now stick this matrix into the field in my list item
    properties.AfterProperties["myNoteField"] = matrix; // throws an error
}

看起来我应该可以做这样的事情:

XmlSerializer s = new XmlSerializer(typeof(List>));
properties.AfterProperties["myNoteField"] = s.Serialize.ToString();

但这不起作用.我发现的所有示例都演示了写入文本文件.



1> Sunny Mileno..:
StringWriter outStream = new StringWriter();
XmlSerializer s = new XmlSerializer(typeof(List>));
s.Serialize(outStream, myObj);
properties.AfterProperties["myNoteField"] = outStream.ToString();



2> 小智..:

这是一个通用序列化器(C#):

    public string SerializeObject(T objectToSerialize)
    {
        BinaryFormatter bf = new BinaryFormatter();
        MemoryStream memStr = new MemoryStream();

        try
        {
            bf.Serialize(memStr, objectToSerialize);
            memStr.Position = 0;

            return Convert.ToBase64String(memStr.ToArray());
        }
        finally
        {
            memStr.Close();
        }
    }

在你的情况下你可以打电话:

    SerializeObject>(matrix);



3> Paul Sonier..:

将TextWriter和TextReader类与StringWriter一起使用.

以机智:

XmlSerializer s = new XmlSerializer(typeof(whatever));
TextWriter w = new StringWriter();
s.Serialize(w, whatever);
yourstring = w.ToString();

推荐阅读
雨天是最美
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有