如何在 C# 中制作一个 "independent" (datacontainer)-class 来保存来自另一个 class 的数据? (slack/JSON-related)
How to make an "independent" (datacontainer)-class in C# holding data from another class? (slack/JSON-related)
我的问题有点复杂。它是这样的:
我通过 HTTPClient 从(在我的例子中)"Slack"-API 获得答案。此数据作为 JSON 发送,因此我将其反序列化为我为此编写的配件 objects(类)。
到目前为止,我只是直接从这些容器中处理数据。但是我的老板现在说,"what if Slack changes something and these things are called differently all of a sudden? - We need an independent container that provides this received data, always under the same names! So when we implement your .dll we never have to care about these changes, only you have to refactor/rename your classes/members"。
我完全理解他的意思。但我无法弄清楚我将如何做到这一点。
正如我所说,这些容器是 类 我写的,当我想创建另一个可以获取所需数据并保存它的容器时,我总是绊倒我无法转换这些 object 类型到其他 object 类型。
我怎么能那样做?我尝试了所有我能想到的方法,但现在我被卡住了...
有人有想法或只是提示吗?也许我的问题有一个更简单的解决方案,但我看不到。这就是为什么我在这种情况下写下了老板对我的要求。
对不起这个问题的标题,我不知道还能写什么。
您可以通过 JsonProperty 属性定义与松弛相关的 属性 名称。这样你只需要更改几个字符串而不是更改 属性 名称和重构部分应用程序(如果你将这些对象直接发送到 UI 可能包括 UI)
using Newtonsoft.Json;
[JsonProperty(PropertyName = "SlackPropName")]
public string MyPropName { get; set; }
我的问题有点复杂。它是这样的: 我通过 HTTPClient 从(在我的例子中)"Slack"-API 获得答案。此数据作为 JSON 发送,因此我将其反序列化为我为此编写的配件 objects(类)。 到目前为止,我只是直接从这些容器中处理数据。但是我的老板现在说,"what if Slack changes something and these things are called differently all of a sudden? - We need an independent container that provides this received data, always under the same names! So when we implement your .dll we never have to care about these changes, only you have to refactor/rename your classes/members"。 我完全理解他的意思。但我无法弄清楚我将如何做到这一点。 正如我所说,这些容器是 类 我写的,当我想创建另一个可以获取所需数据并保存它的容器时,我总是绊倒我无法转换这些 object 类型到其他 object 类型。 我怎么能那样做?我尝试了所有我能想到的方法,但现在我被卡住了...
有人有想法或只是提示吗?也许我的问题有一个更简单的解决方案,但我看不到。这就是为什么我在这种情况下写下了老板对我的要求。
对不起这个问题的标题,我不知道还能写什么。
您可以通过 JsonProperty 属性定义与松弛相关的 属性 名称。这样你只需要更改几个字符串而不是更改 属性 名称和重构部分应用程序(如果你将这些对象直接发送到 UI 可能包括 UI)
using Newtonsoft.Json;
[JsonProperty(PropertyName = "SlackPropName")]
public string MyPropName { get; set; }