Как решить CS0246 Не удалось найти тип или имя пространства имен TypeNameSerializer (вам не хватает директивы using или ссылки на сборку? - PullRequest
0 голосов
/ 10 июля 2020

У меня есть проект библиотеки классов фреймворка. net, который абсолютно нормально работает с проектами фреймворка. net. Теперь мне нужно также сослаться на него в основном приложении. net. поэтому я пытаюсь создать новый стандартный проект. net и скопировал все файлы .cs в этот проект из существующего проекта. и приступил к исправлению ошибок компиляции. Я исправил многие, но все еще получаю несколько.

_rabbitBus = RabbitHutch.CreateBus(
    ConfigurationManager.ConnectionStrings[queueName].ConnectionString,
    serviceRegister => serviceRegister.Register<ISerializer>(
        serviceProvider => new JsonSerializer(new TypeNameSerializer())
    )
);

Я получаю следующую ошибку с кодом, упомянутым выше.

CS0246 Тип или имя пространства имен 'TypeNameSerializer' могло не найден (вам не хватает директивы using или ссылки на сборку?)

Итак, как решить эту проблему?

Примечание: я исправил ошибку компиляции b с помощью этого кода new JsonSerializer(new Newtonsoft.Json.JsonSerializerSettings()) , но я не знаю, правильный это путь или нет, поэтому, пожалуйста, расскажите мне, как решить эту проблему.

1 Ответ

1 голос
/ 10 июля 2020

Похоже, что в. NET Framework и. NET Core.

В последней версии EasyNetQ нет класса с именем TypeNameSerializer, поэтому вы получение этой ошибки.

Также класс JsonSerializer в последней версии EasyNetQ не имеет конструктора, который принимает TypeNameSerializer в качестве параметра.

Вы можете обратиться к Git Репозиторий EasyNetQ , а также Исходный код класса JsonSerializer .

Вам необходимо использовать ту же версию EasyNetQ в. NET Core, как он используется в. NET Рамочный проект для использования TypeNameSerializer.

...