1

いくつかの一般的なプロパティ/メソッドを含めるために ApiController を拡張しました。この拡張されたコントローラーは、別のクラス ライブラリ/アセンブリに保持されます。

public class ExtendedApiController : ApiController
{
    // shared properties...
}

私の Api プロジェクトでは、すべてのコントローラーがこの拡張コントローラーを継承しています。

public class HomeApiController : ExtendedApiController
{
    // actions...
}

ものすごく単純...

ただし、基本クラスを拡張すると、ヘルプ ページ ジェネレーターがこれらのコントローラーから実際にドキュメントを生成できなくなります。コントローラーを ApiController から直接継承するように切り替えると、それらはドキュメントに表示されます。

ジェネレーターが探すアセンブリ名を許可/変更する方法はありますか? 基本クラスを「ApiController」と直接比較しているため、私のすべてをスキップしているというこっそりの疑いがあります。

4

1 に答える 1

1

さて、私の基本クラスが別のアセンブリにあったという事実は、問題の一部でした。本当の問題は、これらのプロジェクトが異なるバージョンの WebApi2 ライブラリを参照していたという事実でした。残念ながら、競合するパッケージのバージョンは、エラーではなく警告としてのみリストされていたため、見落としていました。ソリューション内のすべてのプロジェクトですべての NuGet パッケージを更新すると、問題が修正されました。

于 2014-01-24T19:56:10.387 に答える