我很擅长与WCF合作,而且我很难理解发生了什么。
我试图从我的服务中检索数据,而服务又从数据库中获取数据。为了简化操作,我想返回一个包含数据的对象,以便它可以立即在UWP应用程序中使用。但是,当我尝试使用该服务时,我遇到了以下错误:
无法隐式转换类型' MBCMobile.ServiceReference1.TaskBreakdown_GetDataResponse'到' MBCMobile.ServiceReference1.JobTestObject'
以下代码是我正在使用的代码:
[ServiceContract]
public interface IService1
{
[OperationContract]
JobTestObject TaskBreakdown_GetData(int task, int appliance, int job);
}
[ServiceBehavior(AddressFilterMode = AddressFilterMode.Any)]
public class Service1 : IService1
{
public JobTestObject TaskBreakdown_GetData(int task, int appliance, int job)
{
JobTestObject jobData = data.TaskBreakdown_GetData(task, appliance, job); //object returned from sql query
return jobData;
}
}
使用以下内容使用我的服务:
private async void GetString()
{
ServiceReference1.Service1Client service = new ServiceReference1.Service1Client();
JobTestObject datalist = await service.TaskBreakdown_GetDataAsync(6153, 18876, 18111);
}
JobTestObject
在服务和UWP应用中具有相同的格式。服务版本实际上是作为get / set方法的集合存在而不是其他任何东西。应用程序版本有其他方法,但完全相同的get / set方法。我尝试过使用ServiceReference1.JobTestObject
来查看是否有帮助,但无济于事。我希望我认为将对象传递给客户端可能有点天真。
我也试过返回一个字符串列表并得到类似的错误。
过去我从服务中检索单个值时管理得很好,但现在我想要一次获得多个值,我无法理解我做错了什么。遗憾的是,我发现的大多数解决方案与UWP应用程序无关
更新:根据要求
[DataContract]
public class JobTestObject
{
int appliance_id, manu_id, model_id, landlord_app, applianceType_id,
[DataMember]
public int ApplianceType { get { return applianceType_id; } set { applianceType_id = value; } }
[DataMember]
public int Appliance_ID { get { return appliance_id; } set { appliance_id = value; } }
[DataMember]
public int ApplianceManufacturer { get { return manu_id; } set { manu_id = value; } }
[DataMember]
public int ApplianceModel { get { return model_id; } set { model_id = value; } }
}