2016-03-22 19 views
2

Sowohl Typoskript und C# unterstützt Typ sicheren Zugriff auf die Mitglieder eines Objekts beim "Kompilieren" Typ und json wird verwendet, um "Datentransferobjekte" zwischen Web-Anwendung zurück zu transportieren endet und ihr vorderes Ende.Ende-zu-Ende-Typ der Sicherheit von JSON zwischen C# und Typoskript

Ich würde hier erwarten, Werkzeuge zu sein, die typescript "Wrapper-Klassen" aus den C# -Klassen generieren konnte, die die JSON-Nachrichten definiert haben - aber ich habe noch nie gehört, dass solche Werkzeuge verwendet werden. Es könnte sein, dass ich kein aktiver TypeScript-Entwickler bin. Ich habe etwas im TypeScript-Toolset verpasst, oder eines der "standardmäßigen" JSON-Toolkits für .net tut es bereits. Oder ich könnte nur eine sehr bescheuert Frage ... fragen ..

Antwort

3

TypeLITE wird C# -Klassen in Typoskript Schnittstellen umwandeln:

public class Address { 
    public string Street { get; set; } 
} 

public class Person { 
    public string Name { get; set; } 
    public List<address> Addresses { get; set; } 
} 

Becomes:

interface Address { 
    Street: string; 
} 

interface Person { 
    Name: string; 
    Addresses: Address[]; 
} 

dies Ihre Typoskript ehrlich halten würde, wenn raubend eine C# API.

+0

Danke, wissen Sie eine Möglichkeit, TypeScript "Endpunkte" zu generieren, die vollständig die "JSON API" definieren, die der C# -Kopf offen legt? (Und eine nette Entwicklung/Build "Pipeline", um es zu verwenden.) –

+0

Ich habe eine Frage dazu aber. Sobald dieses Typoskript in Javascript kompiliert wurde, wie können Sie es zwingen, sicher zu sein? Ich schrieb eine Angular2-App und konnte eine C# api-Rückgabedaten in einer anderen Form als die Schnittstelle, die ich in der Typoskript verwendet, und ich habe keine Art von Fehler erhalten –

+0

@AlexKibler - TypeScript bietet Compile-Time-Überprüfung , nicht Laufzeitprüfung (obwohl es Derivate gibt, die die Laufzeitprüfung hinzufügen, z. B. TS *: https://www.stevefenton.co.uk/2014/07/what-is-ts-and-how-is-it-safer -typescript /) – Fenton

1

Reinforced.Typing sieht aus wie es eine Option ist und scheint TypeScript-Code zu generieren, um den Webdienst sowie die Schnittstellen/Objekte zum Beschreiben der zurückgegebenen Daten aufzurufen.

Einfach, dieses Ding konvertiert Ihre .NET-Assemblys in TypeScript-Code. Es integriert sich in VisualStudio Build-Prozess.

Ich denke, es wird weniger als TypeLITE verwendet, beide sind Open Source, so kann erweitert werden, um die Bedürfnisse eines bestimmten Projekts zu erfüllen.

-1

Betrachten Sie Reinforced.Typings und besonders this sample. Dort wird gezeigt, wie Sie Ihre MVC-Anwendungscontroller in AngularJS-Dienste konvertieren, die ng.IPromise<> Ihrer Modelle zurückgeben, und die Typsicherheit bei der Erstellung sicherstellen.