Я использую стороннюю API dll, bloomberg SAPI для тех, кто знает/имеет к ней доступ.Как можно скрыть метод удаления?
Вот моя проблема:
[ComVisible(true)]
public interface IDisposable
{ //this is from mscorlib 2.0.0.0 - standard System.IDisposable
void Dispose();
}
public abstract class AbstractSession : IDisposable {}//method signatures and comments
public class Session : AbstractSession {} //method signatures and comments (from assembly metadata)
Все вышеперечисленное от F12/Перейти к определению объекта/браузера в VS2010. Теперь, когда я пытаюсь и использовать этот код:
(new Session()).Dispose();
Это не компилируется ... стандартная ошибка компилятора - не определение метода/расширения «не Dispose» может быть найден.
Как это возможно ??? Они сделали сборку и явно отредактировали ее метаданные?
Я не знаю, если это возможно юридически, чтобы скрыть (для исключения) публичный метод ....
Aaarrgggh! хороший. Я никогда не использовал явные реализации, поэтому не знал, что вам нужен интерфейс, чтобы использовать его. Благодаря ! – Vivek
Явная реализация интерфейса обычно не требуется, но есть моменты, когда это приятно, например, когда вы хотите заставить своих коллег-разработчиков закодировать по интерфейсу вместо реализации. И несколько раз, когда это необходимо, например, когда вам нужно реализовать два разных интерфейса, которые имеют идентичную подпись элемента, которые вам нужно реализовать двумя разными способами. –
Yup. Благодарю. Как вы уже упоминали, вам редко нужно использовать явное, если имена методов не столкнулись, поэтому это первый раз, когда я увидел это в производственном коде. Интересно, что столкнулось с УТИЛИЗАЦИЕЙ! :) – Vivek