@inject 지시문이란?
@inject 지시문은 .razor 확장자로 만든 razor파일에서 종속성을 주입받기 위해 사용됩니다.
해당 인터페이스(서비스 유형)등을 변수(속성)로 선언해서 사용할수 있게 해준다고 생각하시면 될것 같습니다.
즉, razor 페이지에서 사용할 변수를 선언하기 위해 사용하는것이 @inject 지시문 입니다.
기본 사용법
@inject 유형 속성
유형 : 주입할 서비스의 유형입니다.
속성 : 주입된 앱 서비스를 받는 속성의 이름입니다. 변수라고 생각하시면 될것 같습니다.
* 메뉴얼에서는 속성을 생략하더라도 컴파일러가 자동으로 속성을 만들어준다고 하는데 어떤 이름으로 만들어주는지는 나와있지 않아서 해당 내용은 생략하겠습니다.
예제
@page "/customer-list"
@using Services
@inject IDataAccess DataRepository
@if (customers != null)
{
<ul>
@foreach (var customer in customers)
{
<li>@customer.FirstName @customer.LastName</li>
}
</ul>
}
@code {
private IReadOnlyList<Customer> customers;
protected override async Task OnInitializedAsync()
{
customers = await DataRepository.GetAllCustomersAsync();
}
}
다음과 같이 3번째 라인에서 선언한 @inject IDataAccess DataRepository를 await DataRepository.GetAllCustomersAsync(); 와 같이 사용하는것을 볼 수 있습니다.
'개발언어 > C#' 카테고리의 다른 글
[C#] Unit Test에서 ConfigurationManager로 config 파일 읽어오기 (0) | 2020.09.11 |
---|---|
C# IBatis.Net 사용하기 (0) | 2019.11.20 |