Nano Hash - криптовалюты, майнинг, программирование

Зарегистрируйте объект с помощью AutoFac

Я использую Ребус. В AutofacContainerAdapter (https://github.com/rebus-org/Rebus/blob/master/src/Rebus.Autofac/AutofacContainerAdapter.cs) вызывают следующую строку кода:

builder.Register(a => MessageContext.GetCurrent()).ExternallyOwned();

Как настроить конструктор MessageHandler, чтобы Autofac мог найти этот тип? Если я правильно понимаю, когда я использую IMessageContext в своем конструкторе, он не будет передан, потому что в приведенном выше коде нет .As<IMessageContext>().

09.09.2014

  • но GetCurrent() возвращает IMessageContext - разве это не заставляет Autofac автоматически регистрировать его как это? 09.09.2014
  • Это действительно IMessageContext. в моем конструкторе был другой параметр, который сходил с ума. Мне нужен IMessageContext для модульного теста, поэтому я не могу использовать MessageContext.GetCurrent(). Или я могу? 10.09.2014
  • для модульного тестирования я рекомендую внедрить IMessageContext, как вы собираетесь это сделать, но есть вещь под названием FakeMessageContext, которую можно использовать для создания чего-то поддельного, которое будет возвращено MessageContext.GetCurrent(), так что это возможно - это просто проще (и лучше дизайн кода IMO), чтобы ввести его :) 10.09.2014
  • Делаю это в настоящее время. Спасибо за подтверждение! 11.09.2014

Ответы:


1

Глядя на: https://github.com/rebus-org/Rebus/blob/master/src/Rebus/MessageContext.cs показывает:

public static IMessageContext GetCurrent()
{
}

Так что регистрируется как IMessageContext. Если вы явно не указываете обратное, регистрация лямбда неявно регистрируется как возвращаемый тип лямбда.

09.09.2014
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..