ASP.NET(およびコア)コントローラはpublic
である必要があります。ASP.NET Coreコントローラを内部で作成できますか?
問題(私はそのコンストラクタで)何かに応じてコントローラを持っていますinternal
。その依存関係は何か内部に依存します。これは内部などに依存しますので、コントローラーをinternal
にする必要があります。
しかしコントローラ工場では検出されません。
internal
コントローラを検出可能にする方法はありますか。
ASP.NET(およびコア)コントローラはpublic
である必要があります。ASP.NET Coreコントローラを内部で作成できますか?
問題(私はそのコンストラクタで)何かに応じてコントローラを持っていますinternal
。その依存関係は何か内部に依存します。これは内部などに依存しますので、コントローラーをinternal
にする必要があります。
しかしコントローラ工場では検出されません。
internal
コントローラを検出可能にする方法はありますか。
壮介あなたは、この(それは常にあなたの質問にMCVEを含めることができます)があります。
internal class FooDependency
{
}
public class FooController
{
public FooController(FooDependency dependency)
{
// ...
}
}
をそして、あなたはFooDependency
を公開することはできませんが、公共するFooController
が必要ですか?あなたが言っているこの依存関係を投稿することができます
public interface IFooDependency
{
}
internal class FooDependency : IFooDependency
{
}
public class FooController
{
public FooController(IFooDependency dependency)
{
// ...
}
}
これは私の場合はありがたいことですが、デザインには必ずしも適合しません。特定の内部コントローラを見つけるためにコントローラファクトリを設定できるのが最善でしょうが、それが可能かどうかはわかりません。 – grokky
:
次に、あなたが内部の依存関係にパブリックインターフェイスを適用する必要がありますか?公共は内部より高いですが、依存関係が内部であるかどうかは関係ありません。それがコンストラクタに含まれていない限り、 – DevEstacion
@DevEstacionはい、コンストラクタ内にあります。 – grokky
それをパラメータとして注入したり、コンストラクタ宣言でインスタンス化したり、それを使用するメソッドを提供したりしないでください。 – DevEstacion