tôi nhận được một:BinaryFormatter deserialize cho SerializationException
System.Runtime.Serialization.SerializationException: Không thể tìm lắp ráp 'MyNameSpace, Version = 1.0.0.0, Culture = trung tính, PublicKeyToken = null
Khi cố gắng deserialize một số dữ liệu trong một chương trình khác với chương trình tôi đã tuần tự hóa nó.
Sau khi một số googling tôi đã phát hiện ra rằng dường như điều này chỉ có thể được thực hiện bằng cách sử dụng một hội đồng chia sẻ.
Tuy nhiên, cơ sở dữ liệu của tôi đầy với các đối tượng được tuần tự hóa này và tôi cần một chương trình tiện ích để loại bỏ chúng. Có cách nào để ghi đè lên hành vi này và chỉ cần ăn nó cùng một lớp học chính xác và buộc nó làm deserialize?
Tôi đã tìm thấy đoạn mã này, nhưng tôi không hiểu cách thức và nơi tôi nên đặt/sử dụng.
static constructor() {
AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(CurrentDomain_AssemblyResolve);
}
static Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args) {
Assembly ayResult = null;
string sShortAssemblyName = args.Name.Split(',')[0];
Assembly[] ayAssemblies = AppDomain.CurrentDomain.GetAssemblies();
foreach (Assembly ayAssembly in ayAssemblies) {
if (sShortAssemblyName == ayAssembly.FullName.Split(',')[0]) {
ayResult = ayAssembly;
break;
}
}
return ayResult;
}
Tham chiếu lắp ráp ban đầu trong ứng dụng tiện ích của bạn không phải là một lựa chọn? –
@eric: một số chỉ chưa được trả lời ... vì vậy tôi không thể chấp nhận chúng. Nhưng tôi sẽ xem lại chúng một lần nữa để xem câu trả lời/bình luận mới đã được thêm – Toad
bất kỳ giải pháp cuối cùng nào với mẫu mã nguồn đầy đủ chưa? – Kiquenet