Мне нужно знать, как svcutil и Visual Studio решают, какие типы можно повторно использовать из ссылочных сборок при создании прокси-класса веб-службы.
У меня есть сборка с некоторыми типами, которые объявлены так:
namespace MYCOMPANY.BO.Accounting
{
[Serializable, DataContract]
public class AccountingPackagePutRequest : Request
{
// Fields
[DataMember]
public IBooking[] bookings;
[DataMember]
public IDocument[] documents;
// Methods
public AccountingPackagePutRequest();
}
}
Теперь у меня есть веб-сервис ASP.NET 2.0 (ASMX), который объявлен так:
[WebService(Namespace = "uri://my_company.com/XXXImport")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.
// [System.Web.Script.Services.ScriptService]
public class GLSImportAccountingPackagePut : System.Web.Services.WebService
{
[WebMethod]
public MYCOMPANY.BO.Accounting.AccountingPackagePutResponse AccountingPackagePut(MYCOMPANY.BO.Accounting.AccountingPackagePutRequest request)
{
return new MYCOMPANY.BO.Accounting.AccountingPackagePutResponse();
}
}
Теперь я не могу заставить VS или svcutil повторно использовать типы из первой сборки на клиенте при создании прокси-класса для этого веб-сервиса.
Однако, если я создаю подобный веб-сервис в WCF и пытаюсь сгенерировать прокси-класс для него, типы из первой сборки используются повторно.
В чем здесь проблема, и как я могу заставить VS или svcutil повторно использовать типы для версии веб-службы ASP.NET 2.0 (ASMX)?