.NET のこれらの柱を理解できないようです。
5 に答える
CTS (Common Type System) つまり、CTS は、ランタイムでの型の宣言、使用、および管理の方法を記述し、言語間の統合、型の安全性、および高性能コードの実行を促進すると言えます。
CLS (共通言語仕様) 共通言語仕様 (CLS) は、すべての言語が従わなければならない基本言語機能の共通サブセットを使用するための、言語設計者とクラス ライブラリ設計者の間の合意です。
画像でわかるように、CLS は CTS のサブセットです。
代替テキスト http://www.microsoft.com/taiwan/msdn/columns/DoNet/images/NET_CTS1.gif
いくつかの例は、ここで確かに役立ちます。
CLS に準拠していない重要な要素の 1 つは、符号なしの数値 (uint など) です。もう 1 つは、関数ポインター (デリゲート) です。線の両端で意味をなさない場合、それは「一般的」ではありません。CLS は、CLR 内だけでなく、特定の一般的で明確に特定された相互運用シナリオ内でも機能する一連の一般的な型を定義します。
CLS 準拠を強制する場合は、プロジェクトの assemblyinfo.cs ファイルに "CLSCompliant" 属性を追加することで、アセンブリに "CLSCompliant" 属性を追加できます。
[assembly: CLSCompliant(true)]
クラスの属性として追加することもできます。
[CLSCompliant(true)]
public class HospitalLocationEntity : EntityBase
{
...
}
これらのことを行うと、C# コンパイラ (または属性に適切な VB 構文を使用する VB) が CLS 準拠違反のコンパイル エラーを発生させます。
また、[ScriptService] および [ScriptMethod] 属性を Web サービス (.asmx) に追加すると、サービスは JSON サービス出力を生成し、サービス応答に使用されるデータをクラスおよびアセンブリ レベルで CLSCompliant としてマークする必要があります。
<System.Web.Services.WebService()> _
<System.Web.Services.WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _
<ToolboxItem(False)> _
<ScriptService()> _
Public Class HospitalLocationService
Inherits System.Web.Services.WebService
<WebMethod()> _
<ScriptMethod()> _
Public Function GetAll() As List(Of HospitalLocationEntity)
Return (New HospitalLocation()).GetAll().Data
End Function
End Class
すでに述べたように、CLS は CTS のサブセットです。しかし、これらの用語の実際の定義にはさらに多くのことがあります。
C# 経由で CLR を読むことをお勧めします。