C Sharp client - OpenKM 6.2

From OpenKM Documentation
Revision as of 18:48, 15 October 2013 by Jllort (talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

.Net framework comes with wsdl.exe utility ( possible it's not in your default path)

Create separated webservice

wsdl.exe http://localhost:8080/OpenKM/services/OKMAuth?wsdl /out:AuthService.cs

Create all webservices in one library package

Create file called openkm.wsdl with contents:

<wsdlParameters xmlns="http://microsoft.com/webReference/">
	<nologo>true</nologo>
	<parsableerrors>true</parsableerrors>
	<sharetypes>true</sharetypes>
	<documents>
		<document>http://localhost:8080/OpenKM/services/OKMAuth?wsdl</document>
		<document>http://localhost:8080/OpenKM/services/OKMBookmark?wsdl</document>
		<document>http://localhost:8080/OpenKM/services/OKMDocument?wsdl</document>
		<document>http://localhost:8080/OpenKM/services/OKMFolder?wsdl</document>
		<document>http://localhost:8080/OpenKM/services/OKMMail?wsdl</document>
		<document>http://localhost:8080/OpenKM/services/OKMNote?wsdl</document>
		<document>http://localhost:8080/OpenKM/services/OKMNotification?wsdl</document>
		<document>http://localhost:8080/OpenKM/services/OKMPropertyGroup?wsdl</document>
		<document>http://localhost:8080/OpenKM/services/OKMProperty?wsdl</document>
		<document>http://localhost:8080/OpenKM/services/OKMRepository?wsdl</document>
		<document>http://localhost:8080/OpenKM/services/OKMSearch?wsdl</document>
		<document>http://localhost:8080/OpenKM/services/OKMWorkflow?wsdl</document> 
		<document>http://localhost:8080/OpenKM/services/OKMDashboard?wsdl</document> 
	</documents>
	<webReferenceOptions>
		<verbose>false</verbose>
		<codeGenerationOptions>properties newAsync enableDataBinding</codeGenerationOptions>
		<style>client</style>
	</webReferenceOptions>
</wsdlParameters>

Execute from windows terminal the command:

wsdl.exe /par:openkm.wsdl /out:Webservice.cs /n:OpenKM.ws

If you need a class for VB.net you have to change the command to:

wsdl.exe /l:VB /par:openkm.wsdl /out:Webservice.vb /n:OpenKM.ws

That will generate a Webservice.cs or Webservice.vb with namespace OpenKM.ws. For more information about wsdl.exe options refer to http://msdn.microsoft.com/en-us/library/7h3ystb6%28v=vs.80%29.aspx

Suggested changes in generated classes

Pay attention in public AuthService class ( like others ), it'll be generated some AuthService() constructor that you shouldlike to change to take advantatge of host variable

public AuthService() {
    this.Url = http://127.0.0.1:8080/OpenKM/services/OKMAuth;
}

change to (or create another method with this parameter):

 
public AuthService(String host) {
    this.Url = host + "/OKMAuth";
}