2011-01-07 38 views
1

使用scriptsharp(脚本#)是否可以在调用我的Web应用程序中定义的服务时获得强类型?我能看到的唯一方法是:
1 - 使用链接/共享文件来将我的结果类/域模型复制到我的脚本中#lib
2 - 在脚本#lib中复制我的模型并使用automapper验证?
3 - 使用一些.tt来编码gen?Scriptharp引用Web服务/强类型到结果模型

此外,即使我可以这样做,我的服务结果(asmx)将不会执行此操作时如何解决auto camel-casing脚本#的问题? (所以我的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); 
    } 
} 

服务(在我们的Web应用程序)

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

ñ棕褐色2的作品,你只需要添加[PreserveCase]属性来绕过骆驼套。

using System.Runtime.CompilerServices; 

[Imported] 
[IgnoreNamespace] 
public sealed class Service1ResponseData 
{ 

    [PreserveCase] 
    public string UserMessage; 

    [PreserveCase] 
    public string UserDetail; 
}