У меня есть набор классов, которые представляют документы / объекты, которые можно передавать в AWS ElasticSearch.Как минимум, каждый класс должен использовать следующий атрибут в свойстве, чтобы определить этот документ с уникальным идентификатором.
[ElasticsearchType]
например,
public class ElasticModel
{
[ElasticsearchType(IdProperty = nameof(UniqueIndex))] // Inference
public class ScrapedProduct : ElasticModel
{
public string UniqueIndex { get; set; }
public string Category { get; set; }
public string ProductName { get; set; }
public float Price { get; set; }
}
Обычно, если я хочу заставить других разработчиков создавать свои классы определенным образом, реализуя определенные поля или методы, я бы использовал интерфейс.Но если я хочу убедиться, что любой класс, который они создают в ElasticModel, использует атрибут свойства, показанный выше, как мне применить это?При этом само свойство может быть названо любым количеством разных вещей в зависимости от структуры документа.Можно ли использовать интерфейс для создания строгого требования к атрибуту свойства?Я не могу найти никаких примеров этого или других способов достижения этого результата.