私はstring rendering class i found onlineにHTMLビューを使用しようとしています。そのPDFRender atmは、これが何のために使用されるの原因と呼ばれる。私はDependency Injectionを使ってその設定をしたこと、そしてそれが箱の中でうまくいくはずだと言われました。依存関係注入を使用してクラスをインスタンス化します
どのようにインスタンス化するかわかりません。依存関係はコンストラクタを介して注入されるはずです。
私のクラスのコンストラクタは、この
public PdfRender(IRazorViewEngine viewEngine, ITempDataProvider tempDataProvider, IServiceProvider serviceProvider)
{
_viewEngine = viewEngine;
_tempDataProvider = tempDataProvider;
_serviceProvider = serviceProvider;
}
のように見えると私はこの
// Set up Report PDF html renderer
services.AddScoped<PdfRender, PdfRender>();
今、私のコードでこれをしようとしてm個のようなスタートアップクラスConfigureMetod()でそれを設定(を見た後にリンクの例)
PdfRender pdfRender;
string iWantToBetml = pdfRender.ModelToHTML(inspection);
しかし、私は割り当てられていないVAを使用することはできませんライバル。私はDIがどのように使用されているのか分かりません。私の考えは、デフォルトのviewEngine、dataProvider、およびserviceProvidersを与えることです。
public PdfRender(PdfRender pdfRender, IRazorViewEngine viewEngine, ITempDataProvider tempDataProvider, IServiceProvider serviceProvider)
{
_pdfRender = pdfRender;
_viewEngine = viewEngine;
_tempDataProvider = tempDataProvider;
_serviceProvider = serviceProvider;
}
は、その後、あなたのコントローラであること、そのコントローラ上のインスタンスメソッドで
public SomeMethod(){
string iWantToBetml = _pdfRender.ModelToHTML(inspection);
}
注で使用することができます。
すべてのDI依存関係は、StarUp自体でservices.AddScoped()のように定義する必要があります。あるいは、IServiceCollectionに拡張メソッドを記述し、StarUpでそのメソッドを呼び出すこともできます。 –
"しかし、割り当てられていない変数を使用することができないというエラーが表示されます。"あなたの例は不完全です。すべての関連コードを投稿してください。 – Steven