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

как создать общий интерфейс для доступа к 2 разным ocx с помощью С#

У меня есть 2 OCX с 2 разными версиями. Это сторонние OCX. Каждый ocx имеет набор методов, свойств и событий, которые почти одинаковы в обеих версиях, за исключением нескольких. Я компилирую свои проекты дважды для публикации. Таким образом, у меня есть 2 развертывания по щелчку один раз - одно с версией 1, а другое с версией 2. Я прошу своих пользователей использовать версию, если в их системе установлено программное обеспечение версии 1 и так далее.

Я хотел бы знать, есть ли способ компилировать и развертывать только одну версию моего приложения, и в зависимости от версии стороннего программного обеспечения, установленного в системе пользователя, мое приложение будет получать эту версию ocx во время выполнения?

Или есть способ реализовать интерфейс, в котором я кодирую/наследую все свойства, методы и события и выполняю позднее связывание? Любые предложения приветствуются.

23.02.2015

Ответы:


1

Вы можете использовать такие контейнеры, как Карта структуры, Замок или AutoFac.

Когда ваше приложение запустится, оно определит, установлено ли стороннее программное обеспечение, и заполнит контейнер правильной реализацией интерфейсов. Затем, когда вам понадобится объект класса, вы вызываете контейнер, чтобы передать его вам.

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

Попробуйте, в Интернете есть много помощи.

23.02.2015
  • Я новичок в описанных выше IoC. Не могли бы вы указать мне несколько ссылок. Я пытался искать, но результаты поиска, которые я получаю, не объясняют. 03.07.2015
  • Новые материалы

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

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

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

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

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

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

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