カスタム ファイル タイプのシリアル化と逆シリアル化に BinaryFormatter を使用しています。私は、同じファイルの読み取りと書き込みの両方を行うスタンドアロン アプリケーションと Web アプリケーションを持っています。スタンドアロン アプリは正常に動作していますが、Web アプリでファイルを読み取ると、例外がスローされます。問題は、何が起こっているのかを正確に確認できないことです。このエラーをデバッグまたは修正するにはどうすればよいですか?
BinaryFormatter b = new BinaryFormatter();
b.AssemblyFormat = System.Runtime.Serialization.Formatters.FormatterAssemblyStyle.Simple;
b.Binder = new WebBinder();
object o = b.Deserialize(s); //Throws exception :
タイプ 'System.String' のオブジェクトは、タイプ 'System.Decimal' に変換できません。
public class WebBinder : SerializationBinder
{
public override Type BindToType(string assemblyName, string typeName)
{
Type tyType = null;
string sShortAssemblyName = assemblyName.Split(',')[0];
Assembly[] ayAssemblies = AppDomain.CurrentDomain.GetAssemblies();
foreach (Assembly ayAssembly in ayAssemblies)
{
if (sShortAssemblyName == ayAssembly.FullName.Split(',')[0])
{
tyType = ayAssembly.GetType(typeName);
break;
}
}
return tyType;
}
}
同じファイルがスタンドアロン アプリで正常に逆シリアル化されますか??