Например, у меня есть интерфейс культуры:
public interface ICultureNode
{
public string Ru_RU { get; init; }
public string En_US { get; init; }
}
И несколько классов, которые его реализуют:
public class ExeptionCultureNode : ICultureNode
{
...
public string Ru_RU { get; init; }
public string En_US { get; init; }
}
...
Если я добавлю новое поле в интерфейс и класс, который его реализует, то могу ли я получить оповещение от IDE (либо выборку через обращение к API сборки), в которой будут перечислены все места кода, где создаются инстансы условного ExeptionCultureNode, чтобы поддержать там новое поле.
Спрашиваю потому, что привык к поведению TypeScript, который откажется компилироваться, если к интерфейсу добавлено
обязательное поле (до тех пор, пока это поле не будет поддержано для всех объектов).
Пока приходит в голову только добавить во все определения классов выброс исключения (в продакшене просто дефолтный текст через #if):
public class ExeptionCultureNode : ICultureNode
{
public string Ru_RU { get; init; }
public string En_US { get; init; }
public string En_CA { get => throw new NotImplementedException(); init => throw new NotImplementedException(); }
}