2011-01-07 37 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; 
}