Я пытался подписать сборку и получить эту ошибку:интерфейс не реализована ошибка при подписании C# сборки
'Utils.Connection' does not implement interface member 'Interfaces.IConnection.BugFactory()'. 'Utils.Connection.BugFactory()' cannot implement 'Interfaces.IConnection.BugFactory()' because it does not have the matching return type of 'ThirdPartyLibrary.BugFactory'.
Эта ошибка выглядит как грязная, грязная ложь! В Utils.Connection
, у меня есть этот метод:
public new BugFactory BugFactory()
Я не думаю, что new
ключевое слово является проблемой, потому что 1) удаление его не остановить ошибку и 2) У меня такая же ошибка с другим классом который реализует IConnection
, который делает не ключевое слово new
. Update: если я использую override
вместо new
, я получаю эту ошибку:
'Utils.Connection.BugFactory()': cannot override because 'ThirdPartyLibrary.ConnectionClass.BugFactory' is not a function
Это потому, что ThirdPartyLibrary.ConnectionClass.BugFactory
является свойством.
Существует только один класс BugFactory
, поэтому это не проблема интерфейса, требующего другого типа возвращаемого типа BugFactory
, чем возвращаемого метода. Даже если я явно отмечу мой метод как возвращающий ThirdPartyLibrary.BugFactory
, я все равно получаю сообщение об ошибке, когда пытаюсь прочно назвать Utils
DLL.
Может ли это быть результатом ThirdPartyLibrary
, являющегося старой библиотекой COM, не совместимой с CLS? Я не контролирую эту библиотеку. Когда я делаю не попытаться подписать сборку Utils
, я не получаю ошибку интерфейса.
Мой большой вопрос: как я могу подписать эту сборку?
Edit: вот что IConnection
есть: проблемы
using ThirdPartyLibrary; // The only using statement
namespace Interfaces
{
public interface IConnection
{
...
BugFactory BugFactory();
}
}
@Sarah - вы докопаться до этого? Ник считает, что мой ответ вполне может быть на правильном пути, и он может быть прав, поэтому мне (мы оба!) Было бы интересно узнать, нашли ли вы основную причину, Та. –
Моя коллега и я оба работали над этой проблемой, и мы до сих пор не нашли решения. :( –
Возможно, стоит попробовать ответить Нику, если вы еще этого не сделали. Удачи в решении проблемы. –