gpt4 book ai didi

c# - WCF、EF 和 UWP

转载 作者:太空宇宙 更新时间:2023-11-03 15:10:03 25 4
gpt4 key购买 nike

我目前正在编写 UWP 应用程序。我正在使用 WCF 服务与包含 EF 的业务层对话以与 SQL Server 数据库对话。这一切都处于非常早期的阶段,因为我以前从未使用过 UWP。

我让 UWP 使用 WCF 从数据库返回数据。当我返回一个字符串时,这工作正常。但是,现在我想返回对象,这在 UWP 仅接收引用的意义上不再有效。不返回任何对象。当我在 Debug模式下运行 WCF 时,对象被返回,我可以看到所有包含数据的字段等。

你们哪位天才可以帮助我,因为我被困住了,不知道该怎么做。

这是我的代码。我在业务层的类

namespace Business.Models
{
[DataContract(IsReference = true)]
public class SystemUser
{
public tblSystemUser User { get; set; }

// public tblRole Role { get; set; }

}
}

WCF代码:

namespace ActiveCareWCF
{
[ServiceContract]
public interface IUser
{

[OperationContract]
Task<SystemUser> DoLogin(string userName);
}


public class Service : IUser
{
public async Task<SystemUser> DoLogin(string userName)
{
SystemUser systemUser = new SystemUser();
userName = @"username";

try
{
ServiceCalls serviceCalls = new ServiceCalls();

systemUser = serviceCalls.AuthorizeUser(userName);

return systemUser --- **this is returning an object**;
}
catch (Exception ex)
{

throw ex;
}

}

}

SVC 文件:

 public class ActiveCareService : IUser
{
public async Task<SystemUser> DoLogin(string userName)
{
Service service = new Service();

var user = service.DoLogin(userName);

return user.Result;
}

}

最后是 UWP 中的调用。

 private async void Login_Click(object sender, RoutedEventArgs e)
{
ActiveCareService.UserClient client = new ActiveCareService.UserClient();

var userFromService = client.DoLoginAsync(@"username").Result;
await client.CloseAsync();

var dialog = new MessageDialog("Logged in as " + userFromService.FirstName); **This just returns a string of the type of object it is, not the actual object. This is what I'm struggling with.**
await dialog.ShowAsync();

Frame.Navigate(typeof(YourSites));
}

This is what is returned in the WCF service.

提前致谢。

And this is what is then returned when called from UWP.

最佳答案

我在做同样的事情,现在我的服务总是返回 JSON 字符串,这意味着必须在服务中序列化并在 uwp 中反序列化。

您必须在服务和 UWP 中都具有序列化类的模型。它工作得很好。

在我的服务中,我有一个完整的模型,在 UWP 应用程序中,我创建了一个符合我需求的简化模型。

希望对您有所帮助。

关于c# - WCF、EF 和 UWP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41633130/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com