我们在 C# .NET 中开发了一个应用程序,它使用 SOAP 将数据(客户、订单)同步到 PHP 电子商务应用程序。
PHP 应用程序的 WSDL 作为 .NET 2.0 Web 引用添加到我们的应用程序中,因此 .NET Framework 生成类和函数以与 SOAP Web 服务进行通信。例如,我们可以像这样发送股票信息:
catalogInventoryStockItemUpdateEntity stock = new catalogInventoryStockItemUpdateEntity();
stock.is_in_stock = 1;
stock.is_in_stockSpecified = true;
stock.qty = "10";
webserv.catalogInventoryStockItemUpdate(sessionid, itemcode, stock);
这很好用,但是我们经常在这样的情况下运行:我们的一位客户在 WSDL 中定义了附加(非标准)字段并希望在同步中使用这些字段。我们当前的做法是为这个客户创建一个新的代码分支,并更新 Web 引用以使用我们客户的特定 WSDL。
为了防止我们获得一长串无法维护的软件分支列表,我计划对我们的应用程序结构进行彻底检查。现在我想知道处理这个问题的最佳结构是什么。我正在考虑将 Web 引用放在它自己的类中并动态加载此 DLL,因此如果客户有非标准 WSDL,我们可以创建它自己的类并将其作为“插件”加载到我们的软件中。但是(例如)catalogInventoryStockItemUpdate 中的附加字段在我们的应用程序的主要部分中仍然不可用。
是否有任何工具可以帮助实现这一目标?我希望有一个用于同步的主要应用程序,并将所有客户特定的映射和对 WSDL 的引用放在一个单独的类/项目中。