У меня есть коллекция монго, которую я хочу ввести в интерфейс.Он должен содержать несколько конкретных типов, каждый из которых реализует этот интерфейс.Однако при выполнении запросов, если я использую интерфейс, он говорит мне, что не может найти информацию о сериализации.Пример кода:
var collection = database.GetCollection<ITestInterface>("TestCollection2");
var filter = Builders<ITestInterface>.Filter.Eq(x => x.Number, 42);
var items = collection.FindSync(filter);
Это приводит к исключению с сообщением: «Невозможно определить информацию сериализации для x => x.Number.»
Есть ли способ сообщить драйверамкак сериализовать вещи на интерфейсе?Я могу найти обходной путь, который требует, чтобы все мои типы имели общий базовый класс, и затем я могу сделать что-то вроде:
var filter = Builders<BaseClass>.Filter.Eq(x => x.Number, 42);
var items = collection.OfType<BaseClass>().FindSync(filter);
Однако я бы предпочел не делать этого, а вместо этого получить драйверы, чтобы найтиинформация о сериализации, необходимая для интерфейсов.
Так есть ли способ сообщить драйверам, как сериализовать объекты на интерфейсе или иным образом заставить работать первый блок кода?