public interface IRecordInformation
{
DateTime CreatedOn { get; set; }
DateTime ModifiedOn { get; set; }
}
public class CareerApplication : IRecordInformation
{
public int CareerApplicationId { get; set; }
public string Name { get; set; }
public string FileName { get; set; }
public string Email { get; set; }
public DateTime IRecordInformation.CreatedOn { get; set; }
public DateTime IRecordInformation.ModifiedOn { get; set; }
}
Почему я это делаю? Потому что, если я изменяю интерфейс и удаляю свойство, то должна быть ошибка времени компиляции, что в интерфейсе не объявлено свойство, для которого существует реализация в классе. Таким образом, я могу удалить реализацию из класса. Но если я не использую явную реализацию, используя имя интерфейса в классе, то, если я удаляю свойство из интерфейса, то это соответствующее свойство будет обрабатываться как свойство самого класса.
Я пытался сделать как
public DateTime CreatedOn { get => ((IRecordInformation)this).CreatedOn; set => ((IRecordInformation)this).CreatedOn = value; }
Но есть исключение переполнения стека, для которого я прикрепляю образ
Ошибка, с которой я сталкиваюсь