問題タブ [cls-compliant]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - CLS 準拠のコードを作成する必要があるのはなぜですか?
CLS 準拠に関する多くのページを見つけました。
私は、CLS 準拠について次のことを理解しました。
「コードを書くなら、CLSに準拠して書くべきだ」と多くの人が書いています。しかし、私の知る限り、一般的なソフトウェアで CLS 準拠を使用する理由はありません。
私は正しいですか、それとも何か見逃しましたか?
c# - C# アセンブリに署名するときのインターフェイスが実装されていないというエラー
アセンブリに署名しようとして、次のエラーが発生しました。
「Utils.Connection」はインターフェイス メンバー「Interfaces.IConnection.BugFactory()」を実装していません。'Utils.Connection.BugFactory()' は 'Interfaces.IConnection.BugFactory()' を実装できません。'ThirdPartyLibrary.BugFactory' の一致する戻り値の型がないためです。
そのエラーは汚い、汚い嘘のように見えます! ではUtils.Connection
、次の方法があります。
new
1) キーワードを削除してもエラーが止まらず、2)キーワードを使用IConnection
しない別のクラスで同じエラーが発生しているため、キーワードは問題ではないと思いますnew
。 更新:override
の代わり に使用するとnew
、次のエラーが発生します。
'Utils.Connection.BugFactory()': 'ThirdPartyLibrary.ConnectionClass.BugFactory' は関数ではないためオーバーライドできません
これはThirdPartyLibrary.ConnectionClass.BugFactory
プロパティだからです。
クラスは 1 つしかないため、メソッドが返すものBugFactory
とは異なる戻り値の型を必要とするインターフェイスの問題ではありません。BugFactory
メソッドを return として明示的にマークしても、 DLLに厳密ThirdPartyLibrary.BugFactory
な名前を付けようとするとエラーが発生します。Utils
ThirdPartyLibrary
これは、CLS に準拠していない古い COM ライブラリの結果でしょうか? 私はこのライブラリを制御できません。アセンブリに署名しようとしないUtils
と、インターフェイス エラーは発生しません。
私の大きな質問は、このアセンブリに署名するにはどうすればよいですか?
編集:ここにあるものIConnection
があります:
c# - なぜこの CLS は互換性がないのですか?
次のインターフェイスがあります。
ITemplateItem の私の実装は次のようになります。
しかし、ITemplateCategory 実装の場合、コンパイラはクラスが CLS に準拠していないと通知します。
Ok、
これらの警告を無視するか、クラスに CLSCompliant(false) 属性を追加して無効にすることができます。しかし、私はなぜこれが起こるのか興味があります。特に、コンパイラはインターフェイス自体について文句を言わないためです。
これは、一般にインターフェイスを公開するクラスで発生しますか、それとも禁止されたキーワードを使用しただけですか?
asp.net - メンバーのタイプはCLSに準拠していません
Visual Studio 2008およびVB.Netの使用:
別のアセンブリにコンパイルされたASMXWebサービスを使用する動作中のWebアプリがあります。このWebサービスのプロキシとして機能する別のアセンブリとしてコンパイルされた別のクラスライブラリプロジェクトがあります。これはすべて実行時に機能するようですが、コンパイル時にこの警告が表示されますが、理解できず、修正したいと思います。
メンバーのタイプ「wsZipeee」はCLSに準拠していません
このスニペットが示すように、メインプロジェクトには、コンパイル時の苦情なしにプロキシクラスを参照する多数のWebフォームがあります。
それでも、「CLSに準拠していません」というメッセージを表示するWebフォームが1つありますが(メインプロジェクトのルートにもあります)、他のASPXファイルと同じようにプロキシクラスを参照しようとします。'ERRORhere。で注釈が付けられた行にコンパイル時の警告が表示されます。
これは私には意味がありません。警告のあるファイルはfrmHome.aspx.vbと呼ばれます。プロジェクト内の他のすべての人は同じ方法で物事を宣言し、警告はありません。ところで、Webサービス自体は標準のデータ型(整数、文字列、データセット)を返します。
c# - 基本タイプは、サード パーティ コントロールで CLS に準拠していません
購入したコントローラーがあります。コントロールから継承しようとすると、次のメッセージが表示されます。
コントロールのベンダーにコントロールを CLS に準拠させるように依頼する以外に、これを回避する方法はありますか?
c# - C# コンパイラ警告 CS3016 のクリーンアップ: 属性引数としての配列は CLS に準拠していません
重複の可能性:
「属性引数としての配列は CLS に準拠していません」という警告が表示されるが、型情報が指定されていない
いくつかの場所でこの警告を生成するコードがあります。それらを修正したいのですが、C# コンパイラがエラーの行を報告しないため、それらがどこにあるのかわかりません (そのための未解決の MS Connect の問題があります)。
問題のあるコードの場所を教えてくれるツールはありますか? IL レベルのツールは問題なく、メソッド名が分かっていて、型を宣言するだけで十分です。
vb.net - CLS準拠の問題
次のプロパティが定義されています。MyLibrary.PumpSignal は次の列挙型です。
次に、PumpSignal 型のプロパティを持つ別のクラスがあります。
.NET は、PumpState からの戻り値が cls に準拠していないと不平を言い続けます。
asp.net - 任意の文字列を CLS 準拠の名前に変換するにはどうすればよいですか?
任意の文字列 (つまり、私の制御外) を CLS 準拠に変換するために呼び出すことができるアルゴリズム (または外部ライブラリ) を知っている人はいますか?
ASP.Net Report Viewer コントロールの動的 RDLC (Client Report Definition) を生成しています。一部のフィールド名は、ユーザーが入力した文字列に基づく必要があります。
残念ながら、(サードパーティの CMS を介して) クライアントによるフィールド名の入力をほとんど制御できません。しかし、準拠した文字列を作成するために必要な置換については、非常に柔軟です。
今のところ、次のようなリアクティブ ハック アルゴリズムがあります。
しかし、私はもっと包括的なものを望んでいます。何か案は?
注: 参考になれば、動的 RDLC の作成に使用しているアルゴリズムは、http://csharpshooter.blogspot.com/2007/08/revised-dynamic-rdlc-generation にある BuildRDLC メソッドに基づいています。 html
c# - プロジェクト内のすべてのクラスに 1 つ以上の属性を適用するにはどうすればよいですか?
特定のプロジェクトのすべてのクラスに属性を適用するにはどうすればよいですか?! また、CLSCompliant 属性を 1 つのクラスに適用するだけで十分ですか、それともすべてのクラスに適用する必要がありますか?
ご回答ありがとうございます...