Nat*_*itt 26 c# sharepoint moss serialization wss
我有一个简单的2D字符串数组,我想把它填入MOSS中的SPFieldMultiLineText.这映射到ntext数据库字段.
我知道我可以序列化为XML并存储到文件系统,但我想在不触及文件系统的情况下进行序列化.
public override void ItemAdding(SPItemEventProperties properties)
{
// build the array
List<List<string>> matrix = new List<List<string>>();
/*
* 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
}
Run Code Online (Sandbox Code Playgroud)
看起来我应该可以做这样的事情:
XmlSerializer s = new XmlSerializer(typeof(List<List<string>>));
properties.AfterProperties["myNoteField"] = s.Serialize.ToString();
Run Code Online (Sandbox Code Playgroud)
但这不起作用.我发现的所有示例都演示了写入文本文件.
Sun*_*nov 40
StringWriter outStream = new StringWriter();
XmlSerializer s = new XmlSerializer(typeof(List<List<string>>));
s.Serialize(outStream, myObj);
properties.AfterProperties["myNoteField"] = outStream.ToString();
Run Code Online (Sandbox Code Playgroud)
小智 12
这是一个通用序列化器(C#):
public string SerializeObject<T>(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();
}
}
Run Code Online (Sandbox Code Playgroud)
在你的情况下你可以打电话:
SerializeObject<List<string>>(matrix);
Run Code Online (Sandbox Code Playgroud)
将TextWriter和TextReader类与StringWriter一起使用.
以机智:
XmlSerializer s = new XmlSerializer(typeof(whatever));
TextWriter w = new StringWriter();
s.Serialize(w, whatever);
yourstring = w.ToString();
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
22790 次 |
最近记录: |