Tôi phát triển một hệ thống có các plugin, tải các hội đồng vào thời gian chạy. Tôi có một thư viện giao diện chung, mà tôi chia sẻ giữa máy chủ và các plugin của nó. Tuy nhiên, khi tôi thực hiện LoadFrom cho thư mục plugin và cố gắng tìm tất cả các loại, trong đó thực hiện giao diện phổ biến IServerModule
tôi nhận được ngoại lệ thời gian chạy:Cách lắp ráp đúng cách
Loại 'ServerCore.IServerModule' tồn tại trong cả hai 'ServerCore.dll' và ' ServerCore.dll'
tôi tải plugin như thế này:
foreach (var dll in dlls)
{
var assembly = Assembly.LoadFrom(dll);
var modules = assembly.GetExportedTypes().Where(
type => (typeof (IServerModule)).IsAssignableFrom(type)
&& !type.IsAbstract &&
!type.IsGenericTypeDefinition)
.Select(type => (IServerModule)Activator.CreateInstance(type));
result.AddRange(modules);
}
Làm thế nào tôi có thể đối phó với vấn đề này?
Tôi sẽ rất biết ơn vì bất kỳ trợ giúp nào
Bạn đã thấy điều này? http://stackoverflow.com/questions/1057853/the-type-type-exists-in-both-dlls – Halvard
@Halvard Có, tôi có. Nhưng tôi không có phiên bản khác nhau, tôi có rắc rối với loadfrom, tải tôi lắp ráp tương tự hai lần –
Liệu nó tải ** cùng một lắp ráp ** hai lần hoặc không tải ** lắp ráp ** tương tự hai lần? – Halvard