Reputation: 394
I have seen this question before (here for one), however the solution is to not reuse referenced assemblies. I need to reuse included assemblies because multiple services reference the same shared Objects. If I do not reuse the assemblies I get namespace errors because the same Object is referenced through different namespaces. (ie. Service1.Object, Service2.Object)
In short, I need the generated Client class that extends the ClientBase for the web service but I cannot untick the reuse referenced assemblies as I need shared Objects with the same namespace. Any suggestions?
Upvotes: 1
Views: 3996
Reputation: 11607
You can generate your client proxy with svcutil.exe and use the /r switch to specify assemblies that you want referenced instead of re-emitted in the auto-generated client proxy code.
After building ProjBSvc exec the following, which outputs .wsdl & .xsd
svcutil.exe ProjBSvc.dll
2nd consume the wsdl & xsd to generate a proxy/client:
svcutil.exe *.wsdl *.xsd /o:<ProjCClientPath>/Client.cs /r:ProjACommon.dll
ProjCClient references Client.cs generated from previous steps
Build and examine with the object browser and you will see the types in C referencing the types in A instead of new types with the same name in C's namespace.
You may want /tcv
and /n
as well as other switches to meet your needs.
Here is an article that may help. It also links to the Microsoft documentation for svcutil
Upvotes: 1
Reputation: 982
Use a mapper, meaning you will have to duplicate the models(objects) and have a class the maps the objects from one namespace to the next.
Upvotes: 0