Служебная фабрика IServiceRemotingRequestMessageBody Параметры итерации - PullRequest
0 голосов
/ 26 сентября 2019

Отредактировано оставлено имя пользовательского типа вместо интерфейса фабрики прямого обслуживания.

Я пытаюсь написать перехватчик, способный запрашивать параметры, передаваемые службе удаленного взаимодействия.Я могу перехватить IServiceRemotingRequestMessage, как только он доберется до службы и сможет извлечь параметры, но ТОЛЬКО если я знаю позицию и имя параметра в то время.[Pseudo] var someParam = IServiceRemotingRequestMessageBody.GetParameter (0, «запрос», serviceRequestInfo.RequestMessage.GetBody (). GetType ());

Мне нужен способ простой итерации параметров и работы с ниминапрямую (в настоящее время просто сериализовать их в строку, чтобы я мог записать часть передаваемой информации).Однако IServiceRemotingRequestMessageBody предоставляет только метод GetParameter, которому необходимо передать индекс и имя ...

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

Спасибо за любые советы, Уилл

1 Ответ

0 голосов
/ 27 сентября 2019

Может быть более простой способ использовать сериализацию по умолчанию, но в настоящее время я решил ее путем замены поставщиков сериализации Service Fabric на сериализацию JSON.Затем мои перехватчики могут работать с данными JSON по мере необходимости.

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

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