私はSystem.Dynamic.ExpandoObject
を使用しようとしているので、実行時にプロパティを動的に作成することができます。後でこのオブジェクトのインスタンスを渡す必要があり、使用されるメカニズムにはシリアル化が必要です。もちろん.NET 4でExpandoObjectをシリアル化できますか?
私は私の動的オブジェクトをシリアル化しようとしたとき、私は例外を取得:
System.Runtime.Serialization.SerializationException was unhandled.
Type 'System.Dynamic.ExpandoObject' in Assembly 'System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' is not marked as serializable.
は私がExpandoObjectをシリアル化することはできますか?直列化可能な動的オブジェクトを作成する別の方法がありますか?おそらくDynamicObjectラッパーを使用していますか?
私は非常に単純なWindowsのエラーを複製する例をフォーム作成しました:
using System;
using System.Windows.Forms;
using System.IO;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Binary;
using System.Dynamic;
namespace DynamicTest
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
dynamic dynamicContext = new ExpandoObject();
dynamicContext.Greeting = "Hello";
IFormatter formatter = new BinaryFormatter();
Stream stream = new FileStream("MyFile.bin", FileMode.Create,
FileAccess.Write, FileShare.None);
formatter.Serialize(stream, dynamicContext);
stream.Close();
}
}
}
ショート
、デシリアライゼーションシリアライズルーチンでは、「シリアライザブル」と表示されていない場合は、単純に、シンプルではありません。 –