IWebHostEnvironment 인터페이스를 사용하면 파일의 경로를 얻을 수 있습니다.

WebRootPath, ContentRootPath 2개의 경로를 얻을 수 있습니다.

 

두 경로의 차이는 아래와 같습니다.

WebRootPath - www 파일의 경로

ContentRootPath - 최상위의 경로

 

WebRootPath 와 ContentRootPath  차이

 

사용법

using Microsoft.AspNetCore.Hosting;

namespace HostEnvironmentSample.Controllers
{
	public class HomeController : Controller
	{
		private IWebHostEnvironment _hostEnvironment;

		public HomeController(IWebHostEnvironment hostEnvironment)
		{
			_hostEnvironment = hostEnvironment;
		}

		public string Index()
		{
			string wwwPath = _hostEnvironment.WebRootPath;
			string contentPath = _hostEnvironment.ContentRootPath;
			return "WebRootPath :"+wwwPath + "\n\nContentRootPath " + contentPath;
		}
	}
}

 

ASP.NET 2.0에선 IHostingEnvironment 인터페이스 입니다.

IHostingEnvironment 인터페이스는 더 이상 지원하지 않는다고 합니다.

SQL로 페이징 할때 키워드 검색 해야되는 경우 테이블의 컬럼명이 필요할때가 있습니다.

그럴경우 return 되는 변수를 통해 간단히 Foreach로 코드를 만들 수 있습니다.

private async Task<List<string>> GetTableColumns(string tableNm)
{
	string query = $"SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = '{tableNm}'";
    var columns = new List<string>();
    using (var dbconn = new SqlConnection(_context.ConnectionString))
    {
    	dbconn.Open();
        try
        {
        	using (var cmd = new SqlCommand(query, dbconn))
            {
            	using (var reader = cmd.ExecuteReader())
                {
                	while (reader.Read())
                    {
                    	columns.Add(reader.GetString(0));
                    }
                 }
   			}
     	}
     	catch (Exception ex)
     	{
     		_logger.Log(ex);
     	}
    }
	return columns;
}

'프로그래밍 > C# And .Net' 카테고리의 다른 글

[.NET] ASP.NET 3.1 경로 얻기  (0) 2020.12.24

+ Recent posts