У меня был внутренний интерфейс, который мне нужно было реализовать поверх удаленных .NET-узлов, чтобы обеспечить удаленную связь только с нашими сборками (используя InternalsVisibleTo для доступа к сборкам друзей). Однако, когда я реализовывал интерфейс и построил его, я получил следующее сообщение об ошибке:Реализация внутреннего интерфейса над .NET Remoting
'AssemblyName' does not implement interface member 'InterfaceMember1(...)' 'AssemblyName' cannot implement an interface because it is not public.
Я не смог найти и найти способ, чтобы сделать эту работу. Однако я явно реализовал интерфейс, который позволил моей сборке строить, и я могу вызывать удаленные методы из любой сборки друзей без проблем.
Я обеспокоен отсутствием информации, которую я нашел на эту тему, особенно в MSDN и StackOverflow. Что-то не так с реализацией удаленной работы .NET над внутренним интерфейсом? И если да, то почему?
EDIT Вот что мой интерфейс и реализация выглядит следующим образом:
интерфейс
internal interface IAdmin
{
bool TESTPING();
bool AdminTask1(int val);
...
}
Реализация
public class RService : MarshalByRefObject, IAdmin
{
//IAdmin members
bool IAdmin.TESTPING()
{
return true;
}
bool IAdmin.AdminTask1(int val)
{
// do stuff
return true;
}
}
Я уже делаю это в своем коде, я думал, что создание внутреннего интерфейса может добавить немного дополнительной безопасности, что кажется не так –