И какую точную точку растяжения вы советуете использовать? Переопределять в IContentHandler в основном только методы "BuildDisplay" и "BuildEditor"? Это достаточно? (см. обновление)

отаю над проектом, в котором мы рассматриваем возможность использованияOrchard CMS.

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

Итак, мой вопрос:Правильно ли мое предположение или оно более сложное? И как это можно сделать тогда?

Спасибо!

Обновить: Я вижу, что интерфейс Orcheard IRepository требует реализации поставщика LINQ. В этом сценарии это невозможно, поскольку веб-службы предлагаются через SOAP.

Я лучше подробнее опишу сценарий:

Веб-сайт, который мы хотим создать, должен использовать веб-службы для получения информации о членах и подразделениях организации. Мы хотели бы отобразить членов какой-либо организационной единицы, например, на веб-сайте. Мы также хотим создать наш собственный тип контента «Событие», который должен иметь отношение M: N (Участники) с «Членом» (из WS).

 justSteve21 февр. 2011 г., 05:25
Пытаюсь сделать то же самое. WS передает контент в Part - также ищет интеграцию управления пользователями в микс.

Ответы на вопрос(2)

Решение Вопроса

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

Вы можете сделать это следующим образом:

Оберните ваш прокси-сервер в класс, реализующийIDependencyтак что вы сможете добавить его в драйверы / обработчики / контроллеры и т. д.Для удобства модульного тестирования и макета вы должны создать отдельный интерфейс, например.IMyWebServiceWrapper: IDependency и реализовать это тогда.Создать соответствующие части контента и записи. В магазине записейтолько информация, необходимая для поиска и получения данных из WS. В контентных частях создайте все необходимые свойства - они будут загружены из WS.Вставьте ваш класс из пункта 1. в соответствующие конструкторы обработчиков содержимогоВнутри конструктора обработчика содержимого используйте что-то вроде этого:

OnLoaded<MyPart>((ctx, part) => { part.MyProperty = myService.GetMyProperty(part.SomeIdToLookup); });

Моя часть ваша часть на стороне сада.Моя собственность это какое-то свойство с вашей стороны, которое будет загружено из WS.MYSERVICE это ваш прокси-сервер WS, переданный в качестве параметра конструктора.GetMyProperty это метод в обертке, который вызывает WS и извлекает необходимые данные.

Конечно, вы можете использовать другие события-обработчики (например, OnInitialized, OnCreated, OnPublished и т. Д.). Вы можете прочитать больше об обработчиках контентаВот.

Я также рекомендовал бы получитьмодуль запуска dev от Codeplex для быстрого развития.

нужно использовать репозиторий или даже запись. В зависимости от того, что вы пытаетесь сделать, запуск логики выборки из обработчика может сработать.

 Vojtěch Vít19 янв. 2011 г., 13:28
И какую точную точку растяжения вы советуете использовать? Переопределять в IContentHandler в основном только методы "BuildDisplay" и "BuildEditor"? Это достаточно? (см. обновление)

Ваш ответ на вопрос