問題タブ [portable-class-library]
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.
microsoft-metro - デバッガーは、待機中のメソッドの戻り値の変数を認識しません
.NET 4.5 および Windows ストア アプリを対象としたポータブル クラス ライブラリに、次の非常に単純なコードがあります。
2 行目にブレークポイントを配置してアプリケーションを実行すると、ブレークポイントは正しくヒットしますが、次のようにレポートされるため、デバッガーで応答を調査できません。
「応答」という名前は現在のコンテキストには存在しません
どの程度関連しているかはわかりませんが、実行中のアプリケーションと同じソリューションに配置されたポータブル クラス ライブラリをデバッグできるようにするには、デバッガーの設定で[マイ コードのみ] デバッガーの設定を無効にする必要がありました。
async-await メソッド、ポータブル クラス ライブラリ、ターゲット アプリケーション (特に Windows ストア アプリ)、またはこれらのツールの組み合わせの制限ですか? それともデバッガのバグですか?どんな回避策も役に立ちます。
.net - .NETポータブルクラスライブラリの単体テストアセンブリをどのように作成しますか?
作成したポータブルクラスライブラリの単体テストを試みていますが、ターゲットと同じフレームワークサブセットでテストされていることを確認したいと思います。
Visual Studio ALM + Team Foundation Serverのブログによると、MSTest単体テストフレームワークはVisual Studio2012RCでPCLに変換されました。ただし、ポータブルクラスライブラリを作成してから、VS2012RTMでMSTestフレームワークを参照することはできません。
- [参照]ダイアログを参照すると、PCLと互換性のある単体テストコンポーネントが登録されていないことがわかります。
- プロジェクトファイルに手動GAC参照を追加して
Microsoft.VisualStudio.QualityTools.UnitTestFramework
、参照が見つからないビルドエラーを生成します。 - に手動の直接アセンブリ参照を追加する
C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\ReferenceAssemblies\v4.0\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll
と、UnitTestFrameworkアセンブリが互換性のないmscorlib
バージョンを参照していることを示すビルド警告が生成されます。
に別のMSTestアセンブリUnit Test Library (Windows Store apps)
を参照するプロジェクトタイプがあることがわかりました(初期の回答のおかげで)。このプロジェクトタイプは、UIのない小さなWindowsストアアプリを作成します...マニフェストとすべてを完備しています。また、ターゲットとするフレームワークを指定することもできません。これは、Windowsストアアプリ専用のようです。C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0\ExtensionSDKs\MSTestFramework\11.0\References\CommonConfiguration\neutral\Microsoft.VisualStudio.TestPlatform.UnitTestFramework.dll
テスト対象のライブラリと同じフレームワークサブセットを対象とする単体テストアセンブリを使用して、ポータブルクラスライブラリプロジェクトをテストする必要があるという誤った想定の下で...
.NETポータブルクラスライブラリの単体テストアセンブリを作成するにはどうすればよいですか?
(私はPCLを対象とする他のフレームワークを受け入れていますが、これを考慮に入れているMSTest以外の他のソリューションについては現在気づいていません。)
c# - System.Collections.ObjectModel.ObservableCollection`1 エラー
ポータブル ライブラリで ObservableCollection を使用していますが、以下のエラーが発生します。どうすればこの問題を解決できますか?
「System.Collections.ObjectModel.ObservableCollection
1<MyClass>' does not contain a definition for 'Add' and no extension method 'Add' accepting a first argument of type 'System.Collections.ObjectModel.ObservableCollection
1」が見つかりました (using ディレクティブまたはアセンブリ参照がありませんか?)
編集:ポータブルライブラリにこのクラスがあります
そしてそれをWCFサービスで使用しようとしています。
2番目の編集:監視可能なコレクションプロパティを持つクラスを別のプロジェクト/ライブラリに配置することで、それを理解しました。しかし、なぜその奇妙なエラーが発生したのか、まだ疑問に思っています。
この質問に対する別の解決策は、私のプロジェクトのより良いソリューション構造です。私はまだそれを管理しようとしています。
WCF サービスを使用する Silverlight プロジェクトを設計しています。Silverlight と WCF サービスの両方で共有する共通のクラスがいくつかあります。ObservableCollection や SortedList などのデータ構造を使用する必要があるため、ポータブル クラスと共有だけでは機能しませんでした。ポータブル クラスにはこれがありません。そのため、私はさまざまなライブラリにサロゲート クラスを持っていますが、これは見栄えがよくありません。どのように設計すればよいですか?
c# - Portable Class Library (PCL) Contrib - 暗号化
codeplex のPortable Class Library Contrib プロジェクトで暗号化を使用したいのですが、使用方法に関するドキュメントが見つかりません。
Encrypt
メソッドを含むラッパー クラスを作成し、Decrypt
このラッパー クラスをポータブル クラス ライブラリに存在させたいと考えています。このプロジェクトでは とを参照Portable.Runtime
しました。Portable.Security.Cryptography
これは正しいです?
次に、.NET、Windows Phone、および Metro プロジェクト内でラッパーを使用したいと考えています。これらのプロジェクトでは、ラッパー プロジェクト 、Portable.Runtime
およびPortable.Security.Cryptography
対応するポータブル プロジェクト、つまりPortable.Desktop
、Portable.Phone
またはを参照しPortable.WindowsStore
ます。これは正しいです?
ただし、ラッパー クラスを使用しようとすると名前空間の競合エラーが発生します。これはエラーと私のラッパークラスです:
タイプ
System.Security.Cryptography.AesManaged
は と の両方C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\Profile\Client\System.Core.dll
に存在します。C:\Downloads\PclContrib\bin\Debug\Portable.Security.Cryptography.dll
c# - Portable Library クラスで ValidationContext をインスタンス化できないのはなぜですか? また、それを修正する方法は?
ポータブル ライブラリ クラスでドメイン オブジェクトを作成しています。それらは実装する必要がINotifyPropertChanged
あり、INotifyDataErrorInfo
したがって、私のドメインクラスはこの基本クラスを実装する必要があります
しかし、私はこの行でそれを実現しました
コンストラクタがないため、オブジェクト ValidationContext を作成できません。新しいものを作成するにはどうすればよいですか?
UPDATE 私のインテリセンスによると、これには含まれています。
c# - .NET4.5、SL、および Windows ストア アプリを対象とするポータブル ライブラリ クラスの MEF
私はポータブル ライブラリ クラスを使用しており、.NET 4.5、Silverlight 5、および Windows ストア アプリをターゲットにしています。
MSDN によると、次の 3 つのプラットフォームで MEF を使用することが可能です: http://msdn.microsoft.com/en-us/library/gg597391.aspx
しかし、これらのプラットフォームで MEF を使用することはできません。PCL で MEF を使用する正しい方法は何ですか?
c# - ポータブルクラスライブラリ:[Serializable]の代替をお勧めします
.NET Framework C#クラスライブラリをポータブルクラスライブラリに移植しています。[Serializable]
この属性はポータブルクラスライブラリサブセットの一部ではないため、繰り返し発生する問題の1つは、属性で装飾されたクラスをどのように処理するかです。代わりに、ポータブルクラスライブラリサブセットのシリアル化機能は、 DataContractAttributeでカバーされているように見えます。
- ポータブルクラスライブラリで可能な限り多くの機能を保持するには
[Serializable]
、[DataContract]
属性で置き換えるだけで十分ですか(シリアル化の対象となるすべてのフィールドとプロパティも同様に装飾する必要があることを意味し[DataMember]
ます)。 - 適用された場合にできるこのアプローチでは、(もしあれば)何ができないでしょうか?
[Serializable]
- 邪魔にならないアプローチはありますか?
それとが使われ[DataContract]
て[DataMember]
いるので、次の行に沿ってコードを変更することを検討しています。このアプローチに明らかな欠陥はありますか?同じことをより冗長でなく定式化する方法はありますか?
.net - 再配布ライブラリのポータブル クラス ライブラリ Contrib
PCL Contribの助けを借りて、ポータブル クラス ライブラリを作成しました。PCL Contrib が機能するには、適切な Portable も含める必要があることを理解しています。ポータブル クラス ライブラリを利用するプロジェクトのPlatform .dll (プラットフォームは Desktop、Silverlight など)。私が作成した PCL は再配布される予定であり、PCL を使用する人が複数の DLL を含めて動作させる必要がないようにすることで、その使用を簡素化したいと考えています。PCL DLL、ポータブルをロールする方法はありますか。プラットフォームDLL、およびその他のプラットフォーム固有の抽象化 (「PCL プラットフォームの抽象化」を参照) をプラットフォームごとに 1 つの DLL にしますか?
プラットフォーム固有のパッケージに (ある程度) 分割する必要があるとしても、コードの大部分を単一の管理可能な領域に保持するために、PCL を使用したいと考えています。これにより、可能な限り多くのコードを再利用できるようになると思います。
silverlight-5.0 - .NetポータブルサブセットにICustomTypeProviderが表示されない
プロジェクトでポータブルクラスライブラリを作成して、Silverlight5ソリューション内にいくつかの一般的なコードを保持しました。ICustomTypeProviderを実装していくつかの柔軟なオブジェクトを作成したいのですが、ライブラリのターゲットとして.Net FrameworkとSL5のみを選択しても、PCLにインターフェイスが表示されません。
System.Reflectionは4.5フレームワークとSL5の両方に表示されますが、インターフェイスが表示されないのはなぜですか?
c# - ポータブルクラスライブラリで永続的なwcfサービスのinstanceIdを取得するにはどうすればよいですか?
WCF service
ポータブルのヘルパークラスを使用して、耐久性のあるインスタンスIDを取得しようとしています.net assembly
。IDを取得するには、次の呼び出しを行う必要があります。
しかし、ポータブルクラスライブラリにIContextManager
は含まれていません:ポータブルクラスライブラリでinstanceIdを取得するにはどうすればよいですか?