使用scriptsharp(脚本#)可以在调用我的Web应用程序中定义的服务时获得强类型输入吗?我能看到的唯一方法是:
1 - 使用链接/共享文件将我的结果类/域模型阴影复制到我的脚本#lib
中
2 - 在脚本#lib中复制我的模型并使用automapper进行验证?
3 - 使用一些.tt代码生成?
另外,即使我能做到这一点,如果我的服务结果(asmx)不会这样做,我怎么绕过自动驼峰套管脚本呢? (所以我的JSON响应将作为UserMessage进行组合,脚本#将更改为userMessage)
基本上,我想用脚本#来实现的是在javascript中调用和处理服务时对我们的域模型的更好的编译时支持,所以像这样:
Scriptlet
public static class MyScriptlet
{
public static void Main()
{
MyService.Service1("hello", ProcessResponse);
}
public static void ProcessResponse(MyService.Service1ResponseData resp)
{
jQuery.Select('#Message').Text(resp.UserMessage);
jQuery.Select('#Detail').Text(resp.UserDetail);
}
}
服务(在我们的网络应用中)
public class MyService
{
public class Service1ResponseData
{
public string UserMessage {get;set;}
public string UserDetail {get;set;}
}
public Service1ResponseData Service1(string user)
{
return new Service1ResponseData() { UserMessage:"hi",UserDetail:"some text" };
}
}
答案 0 :(得分:1)
Number 2有效,你只需要添加[PreserveCase]属性来绕过骆驼套管。
using System.Runtime.CompilerServices;
[Imported]
[IgnoreNamespace]
public sealed class Service1ResponseData
{
[PreserveCase]
public string UserMessage;
[PreserveCase]
public string UserDetail;
}