Существует ли способ или даже может ли он быть создан для создания интерфейс, содержащий все общедоступные методы/свойства класса?
Я нахожусь в проекте, использующем фреймворк Moq. Moq имеет, по-видимому, довольно распространенное ограничение: он может обрабатывать только интерфейсы и виртуальные методы. Архитектор проекта решил пойти по пути интерфейса, что означает, что каждый класс в проекте имеет соответствующий интерфейс. Это означает, что существует множество интерфейсов, реализованных одним классом. Более того, стиль требует, чтобы интерфейсы помещались в отдельные файлы. Это означает, что в проекте загрузка файлов.
На мой взгляд, было бы реально лучше, если бы эти интерфейсы и файлы- «Только за минимальный заказ» могло бы быть немного менее навязчивым. Нет ли способа заставить систему (Visual Studio/.Net/C#) создавать их.
Например, если писать это
Код: Выделить всё
[ExtractAndImplement("IFoo")]
public class Foo
{
public int Bar(int baz)
{
...
}
}
Код: Выделить всё
public interface IFoo
{
int Bar(int baz);
}
public class Foo : IFoo
{
public int Bar(int baz)
{
...
}
}
Я предполагаю, что в Lisp/ В схеме это можно сделать с помощью макросов, а в Haskell — с помощью шаблонов.
Подробнее здесь: https://stackoverflow.com/questions/229 ... from-class