Как работать с файлами SalesForce WSDL для песочницы и рабочих сайтов в ASP.Net?
-
07-07-2019 - |
Вопрос
Мне нужно аутентифицировать пользователей и получать информацию о них из приложения ASP.Net. Поскольку у меня есть 2 сайта (песочница, рабочий) и 2 идентификатора организации - мне нужно было сгенерировать 2 файла SalesForce WSDL.
Я просмотрел 2 файла (каждый размером около 600 КБ), и, хотя они на 95% одинаковы, повсюду разбросано достаточно различий - достаточно, чтобы мне понадобилось использовать их оба. Я добавил обе ссылки в качестве веб-ссылки к своему решению, и вот здесь начинается моя проблема.
Очевидно, я не могу использовать обе ссылки в одном и том же файле, поскольку они содержат одинаковые классы / функции. В выходные я должен был написать быстрое и грязное решение, поэтому я просто создал 2 класса, каждый из которых использует свою веб-ссылку, но в остальном точную функциональность, и я использую соответствующий, основываясь на URL-адресе пользователя от. Это хорошо работает, но мне кажется плохим (читай: быстро и грязно) решением.
Мой вопрос: есть ли способ сделать одно или несколько из следующих действий:
<Ол>Спасибо за ваше время.
Решение
На самом деле решение было намного проще и скрывалось у меня под носом.
Мне просто нужно было использовать псевдонимы пространства имен . Таким образом, я могу включить обе службы во время компиляции и решить, какие из них использовать во время выполнения:
using System.Web;
.
using ProductionAPI = MyCompany.SForce;
using SandboxAPI = MyCompany.SForce.Sandbox;
.
.
.
if(isSandbox)
binding = new SandboxAPI.SForceService();
else
binding = new ProductionAPI.SForceService();
.
.
.
Другие советы
Возможно, я что-то упустил, но постараюсь ответить:
1 Я полагаю, вы имеете в виду URL? Да, вы можете при создании объекта клиента
var service = new Acmeco.AcmecoService();
service.Url = "oneUrlOrTheOther;
2 Что ты имеешь в виду? Когда вы добавляете ссылку, вы должны дать ей имя, которое помещает ее в уникальное пространство имен. Как и Acmeco в предыдущем примере.
3 Это зависит от того, какую разницу в 5% вы упомянули? Я не совсем понимаю, как вы получаете различие в WSDL для одного и того же веб-сервиса на двух разных хостах. Я думаю, что будут отличаться только адреса, но методы и параметры останутся прежними. Возможно, вы можете разработать?
Чем они отличаются? Я подозреваю, что это просто настраиваемый SalesForce.com, так что ваши песочница и производственные сайты не идентичны. Два должны быть идентичными, если вы собираетесь воспользоваться возможностью использовать сайт песочницы для тестирования.