Does anyone have a working full example of WCF and ES that they can share?
Here's what I have, based on Generated/Custom classes called VisibilityType:
ServiceContract/Implementation:
Code:
[ServiceContract(Namespace="http://MyNamespace", SessionMode=SessionMode.Allowed)]
public interface IVisibilityTypeService
{
[OperationContract]
MyNamespace.VisibilityTypeProxyStub Get(System.Int32 request);
}
public class VisibilityTypeService : IVisibilityTypeService
{
#region IVisibilityTypeService Members
public MyNamespace.VisibilityTypeProxyStub Get(int request)
{
VisibilityType thisType = new VisibilityType();
thisType.LoadByPrimaryKey(request);
return new VisibilityTypeProxyStub(thisType);
}
Exposed by a host project containing VisibilityTypeService.svc.
I am using the Patterns & Practices Service Factory, so when I generate the service reference I get this VisibilityTypeService.cs:
Code:
namespace MyNamespace
{
using System.Runtime.Serialization;
using System;
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")]
[System.Runtime.Serialization.DataContractAttribute(Namespace="http://MyNamespace/")]
[System.SerializableAttribute()]
public partial class VisibilityType : object, System.Runtime.Serialization.IExtensibleDataObject
{
[System.NonSerializedAttribute()]
private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
[System.Runtime.Serialization.OptionalFieldAttribute()]
private System.Nullable<int> VisibilityTypeIDField;
[System.Runtime.Serialization.OptionalFieldAttribute()]
private string VisibilityTypeDescriptionField;
[System.Runtime.Serialization.OptionalFieldAttribute()]
private string esRowStateField;
public System.Runtime.Serialization.ExtensionDataObject ExtensionData
{
get
{
return this.extensionDataField;
}
set
{
this.extensionDataField = value;
}
}
[System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue=false)]
public System.Nullable<int> VisibilityTypeID
{
get
{
return this.VisibilityTypeIDField;
}
set
{
this.VisibilityTypeIDField = value;
}
}
[System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue=false, Order=1)]
public string VisibilityTypeDescription
{
get
{
return this.VisibilityTypeDescriptionField;
}
set
{
this.VisibilityTypeDescriptionField = value;
}
}
[System.Runtime.Serialization.DataMemberAttribute(Order=2)]
public string esRowState
{
get
{
return this.esRowStateField;
}
set
{
this.esRowStateField = value;
}
}
}
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")]
[System.ServiceModel.ServiceContractAttribute(Namespace="http://MyNamespace", ConfigurationName="MyNamespace.IVisibilityTypeService")]
public interface IVisibilityTypeService
{
[System.ServiceModel.OperationContractAttribute(Action="http://MyNamespace/IVisibilityTypeService/Get", ReplyAction="http://MyNamespace/IVisibilityTypeService/GetResponse")]
MyNamespace.VisibilityType Get(int request);
}
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")]
public interface IVisibilityTypeServiceChannel : MyNamespace.IVisibilityTypeService, System.ServiceModel.IClientChannel
{
}
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")]
public partial class VisibilityTypeServiceClient : System.ServiceModel.ClientBase, MyNamespace.IVisibilityTypeService
{
public VisibilityTypeServiceClient()
{
}
public VisibilityTypeServiceClient(string endpointConfigurationName)
:
base(endpointConfigurationName)
{
}
public VisibilityTypeServiceClient(string endpointConfigurationName, string remoteAddress)
:
base(endpointConfigurationName, remoteAddress)
{
}
public VisibilityTypeServiceClient(string endpointConfigurationName, System.ServiceModel.EndpointAddress remoteAddress)
:
base(endpointConfigurationName, remoteAddress)
{
}
public VisibilityTypeServiceClient(System.ServiceModel.Channels.Binding binding, System.ServiceModel.EndpointAddress remoteAddress)
:
base(binding, remoteAddress)
{
}
public MyNamespace.VisibilityType Get(int request)
{
return base.Channel.Get(request);
}
}
}
On my test form, I have a button and a listbox and added this to the button click:Code:
MyNamespace.VisibilityTypeServiceClient thisClient = new MyNamespace.VisibilityTypeServiceClient();
MyNamespace.VisibilityTyp thisType = thisClient.Get(1);
listBox1.Items.Add(thisType.VisibilityTypeDescription);
When I run it it hangs at the "Get". The Get does not show as returning a VisibilityTypeProxyStub, but a VisibilityType. I thought maybe the guidance package was doing something funny so I just used svcutil to generate the client class and it still didn't come back with the ProxySub.
How do you get it to return the proxy? Anything obviously wrong with what I'm doing?
Thanks,
- Robert Paquette
ITIQ Solutions