scriptsharp参考Web服务/强类型到结果模型

时间:2011-01-07 01:47:26

标签: .net script#

使用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" };
    }
}

1 个答案:

答案 0 :(得分:1)

Number 2有效,你只需要添加[PreserveCase]属性来绕过骆驼套管。

using System.Runtime.CompilerServices;

[Imported]
[IgnoreNamespace]
public sealed class Service1ResponseData
{

    [PreserveCase]
    public string UserMessage;

    [PreserveCase]
    public string UserDetail;
}