leetherrien
leetherrien

Reputation: 21

WCF Service Reference Will not compile

I currently have a simple WCF service with the following operation:

[OperationContract]
int InsertApplication(Application application);

The Application Parameter is defined as follows:

[DataContract]
public class Application
{
    int test = 0;

    [DataMember]
    public int Test
    {
        get { return test; }
        set { test = value; }
    }
}

This service is being consumed within a Windows service with a namespace SpringstoneColoAgent. I added a service reference with no problems called OfficeInternalService. The code that calls the service method is as follows:

 Application application = new Application();//= ConvertToApp(app);
 application.Test = 1;
 int oracleID = client.InsertApplication(application);

However, visual studio is telling me that 'application' is an invalid parameter. On further research I try to build anyway. I get a bunch of errors pointing to the Reference.cs file. Looking at this file I determine all the errors revolve around code that uses the following:

SpringstoneColoAgent.OfficeInternalService._ 

Where anything it is trying to reference under the service reference name is incorrect. So for example this code is giving an error:

[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOfficeInternalService/InsertApplication", ReplyAction="http://tempuri.org/IOfficeInternalService/InsertApplicationResponse")]
int InsertApplication(SpringstoneColoAgent.OfficeInternalService.Application application);

If I do not fully qualify the namespace and remove SpringstoneColoAgent.OfficeInternalService. so that the code looks like this:

[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOfficeInternalService/InsertApplication", ReplyAction="http://tempuri.org/IOfficeInternalService/InsertApplicationResponse")]
int InsertApplication(Application application);

This will fix the error. I repeated this everywhere I could find the error and everything compiled fine. The downside is that everytime I make a change to the WCF service and need to update the service reference it loses these changes and I have to go back and change them.

I'm guessing I am missing something here and was curious if anyone had any direction or has run into a similar situation.

Thanks for any advice!

Upvotes: 1

Views: 615

Answers (1)

kroonwijk
kroonwijk

Reputation: 8400

The Application class is a known .NET type: http://msdn.microsoft.com/en-us/library/system.windows.forms.application.aspx. Try to work with a different class name to avoid name clashes.

Also try to avoid the int private member in the datacontract. Because it is not a datamember, it is not exposed in the WSDL and a generated proxy class on the client side does not know this private member. This can also cause problems.

Upvotes: 2

Related Questions