.NET SOAP Common types

前端 未结 2 930
时光取名叫无心
时光取名叫无心 2020-12-10 23:02

Is there a way when creating web services to specify the types to use? Specifically, I want to be able to use the same type on both the client and server to reduce duplicati

2条回答
  •  谎友^
    谎友^ (楼主)
    2020-12-10 23:58

    Okay, I see know that this has been an explicit design decision on the part of SOAP so you're not actually supposed to this. I found the following page that explains why:

    Services share schema and contract, not class. Services interact solely on their expression of structures through schemas and behaviors through contracts. The service's contract describes the structure of messages and ordering constraints over messages. The formality of the expression allows machine verification of incoming messages. Machine verification of incoming messages allows you to protect the service's integrity. Contracts and schemas must remain stable over time, so building them flexibly is important.

    Having said that there are two other possibilities:

    1. Generate the the web references in Visual Studio or using wsdl.exe. Then go into the generated Reference.cs (or .vb) file and delete the type explicitly. Then redirect to the type that you want that is located in another assembly.
    2. You can share types between web services on the client side by wsdl.exe and the /sharetypes parameter.

提交回复
热议问题