gpt4 book ai didi

c# - 寻找序列化方法或常量的解决方法

转载 作者:行者123 更新时间:2023-11-30 14:12:52 27 4
gpt4 key购买 nike

显然我的教育让我失望了,因为我没有意识到 C# 中的方法不能序列化。 (很高兴知道。)

我正在尝试创建一个返回我创建的简单类的 WCF 服务。问题是这个简单的类包含我想要公开的方法,而我的服务的调用者将无法访问它们(假设他们没有包含类声明的 .dll)。

public class Simple
{
public string Message { get; set; }
private const string _Hidden = "Underpants";

public string Hidden
{
get { return _Hidden; }
}

public string GetHidden()
{
return _Hidden;
}
}

我设置了一个 WCF 服务(我们称它为 MyService)来返回我的 Simple 类的一个实例。令我沮丧的是,我只得到了类的部分构建。

public void CallService()
{
using (var client = new MyService.Serviceclient())
{
Simple result = client.GetSimple();
string message = result.Message; // this works.
string hidden = result.Hidden; // this doesn't.
string fail = result.GetHidden(); // Underpants remains elusive.
}
}

是否有任何类型的解决方法可以让我在我的类上设置一个属性或方法,以便调用我的服务的任何人都可以访问?如何处理在仅存在于服务中的类中设置的常量或其他方法?

最佳答案

通常您会创建三个不同的项目。

 1. Service project
2. Client project
3. Data project

数据项目只包含数据类——没有应用程序代码。这些数据类中的方法和常量应该独立于服务/客户端项目。数据项目作为引用包含在服务和客户端项目中,以便序列化和反序列化针对相同的二进制文件进行 - 您可以保留常量/方法/等。

这里的缺点是您的所有客户端都必须是 .NET 应用程序,或者您必须为您希望支持的每个平台提供不同的数据库。

关于c# - 寻找序列化方法或常量的解决方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16110393/

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