gpt4 book ai didi

c# - 字符串解析为模型(RegEx 模型 Binder ?)

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

有没有什么优雅的方法可以将字符串绑定(bind)到模型,而不是自己编写一堆样板代码来进行绑定(bind)?本质上,我有一个通过 telnet 连接到第三方设备的命令行界面。我正在构建一个 Web 服务以将此 CLI 公开给外部应用程序。通过 telnet 发出命令后,我得到一个响应字符串,需要将其解析为模型。

例子:

/> echosnd -if 1 -dn 5551234567
Echo Sounder Test created on Interface CITYCOTTNNN-5ES, Resource 12 with ID #2967232
/>

我想绑定(bind)该字符串以创建以下对象:

public class ConfigureTestResponse
{
[CLIResponse(RegEx = "Interface (?<interface>[a-zA-Z0-9]*")]
public string Interface { get; set; }
[CLIResponse(RegEx = "Resource (?<resource>[0-9]*)")]
public int Resource { get; set; }
[CLIResponse(RegEx = "#(?<id>[0-9]*)")]
public int TestId { get; set; }
}

首先,我创建了 CLIResponseAttribute 来保存该属性的 RegEx 过滤器(尽管上面的过滤器很可能不起作用 - 我将它们插入以进行说明,只测试了 TestId [一点点])。我可以使用 Regex 将它们分成几组,并以这种方式设置属性,但是我需要根据什么处理一堆转换(int32、int64、小数、字符串、复杂模型等)属性类型是。我希望有某种绑定(bind),我可以提供一个名称/值对,并且它会进行适当的绑定(bind) - 或者更好的东西......

有这样的东西吗?我虽然使用 MVC DefaultModelBinder,但使用它会产生大量开销。处理在字符串中扁平化的复杂类型(和列表)会很好。我不想做的是为每个命令编写特定的解析器,因为每个命令返回的结果格式略有不同。

谢谢!

(编辑:我想将正则表达式移动到类的属性中,以便能够对字符串执行 IsMatch。使用组,我假设我仍然可以将输出绑定(bind)到属性。)

最佳答案

不,没有魔法可以为你做这件事。最好开始! :)

关于c# - 字符串解析为模型(RegEx 模型 Binder ?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5641209/

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