PDA

View Full Version : سوال: مشکل Deserialize در فایل با Assembly متفاوت



Bootstrap
چهارشنبه 29 مهر 1394, 21:40 عصر
سلام و خسته نباشید به همگی
می خواستم زمان و یک string از یک فایل خارج کنم ولی هر کاری کردم به خطای unable to find an Assembly میرسم

اول به صورت زیر عمل کردم که خوب اشکال داره :
using (Stream serializationStream = (Stream)File.Open(path, FileMode.Open))
{
BinaryFormatter binaryFormatter = new BinaryFormatter();
try
{
Subtitles = (List<Subtitles>)binaryFormatter.Deserialize(serializationStream);
}
catch (Exception ex)
{
Console.Write(ex.ToString());
}

}


از اینجا (https://social.msdn.microsoft.com/Forums/vstudio/en-US/e5f0c371-b900-41d8-9a5b-1052739f2521/deserialize-unable-to-find-an-assembly-?forum=netfxbcl)این کد تست کردم ولی فرق چندانی نکرد

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;
}



نمونه فایل ضمیمه شده
تشکر

am_al_59
چهارشنبه 29 مهر 1394, 22:04 عصر
حتماً میخوای از BinaryFormatter استفاده کنی؟
اگر از XmlSerializer استفاده کنی ربطی به نام و نسخه اسمبلیت نداره
اما اگر اصرار داری از BinaryFormatter استفاده کنی فکر میکنم اگر متدهای لازم برای serialize , Deserialize رو در یک dll قرار بدی و اونو در پروژه های مختلف استفاده کنی مشکلی پیش نیاد

Bootstrap
چهارشنبه 29 مهر 1394, 22:08 عصر
نه الزامی ندازه فقط خروجی برام مهم
اون لحظه اصلا فکرم به XmlSerializer نرسید
تشکر