这是我的wcf双工服务回调接口:
public interface ICallback
{
[OperationContract(IsOneWay = true)]
void SendClientCallback(CallbackMessage callbackMessage);
[OperationContract]
void GetTemplateList(ref List<ISpecimenTemplateDescriptor> templateDescriptors, IDrawerLayout drawerLayout);
}
我将服务引用配置为使用 System.Collections.Generic.List 类型。我通过右键单击服务引用、选择配置服务选项并更改集合类型来做到这一点。这将服务引用配置为使用 List 的集合类型,而不是默认的 Array 类型。
当我编译和更新我的服务引用时,我的接口类型“ISpecimenTemplateDescriptor”和“IDrawerLayout”被转换为“System.Object”,如下所示:
void GetTemplateList(ref System.Collections.Generic.List<object> templateDescriptors, object drawerLayout);
为什么我的接口对象在服务引用中转换为 System.Object?
这是我的服务合同:
[ServiceContract(SessionMode = SessionMode.Required, CallbackContract = typeof(ICallback))]
public interface IWcfService
{
.....
}
以下是我的服务行为:
[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single, ConcurrencyMode = ConcurrencyMode.Reentrant, UseSynchronizationContext = false)]
public class WcfService : IWcfService
{
......
}
提前感谢您的帮助!