요즘 Restful API를 개발하면서 APICpntroller를 사용하여 개발하는 빈도가 높아졌다.

그래서 UI가 없는 단순 string 위주의 response가 많아지면서 내가 개발한 API를 사용하여 application를 개발하는 counter part의 개발자들에게 정해진 형식(json, xml)의 형태로 선개발을 진행 할 수 있도록 dummt data를 주는 프로그램을 만들면서 프로젝트에 포함된 파일을 access 하는 방법이 필요하게 되었다.


json으로 반환하는 data중에 xml row data를 반환하게 되어 있는데 하나의 xml이 굉장히 길었기 때문에 파일 io로 구현하기로 했는데 여러 방법을 시도해본 결과 다음과 같은 방법을 선택하였다.


먼저 환경은 asp.net MVC4이고 파일 경로는 프로젝트내 App_Data폴더에 추가 하였다.


public ReturnModel GetList()

        {

            item.Provider = 1;

            item.ResultList = new List<CommonResultModel>();


            string text = System.IO.File.ReadAllText(AppDomain.CurrentDomain.GetData("DataDirectory").ToString() + @"/1.xml", Encoding.Default);



            for (int i = 0; i < 20; i++)

            {

                CommonResultModel model = new CommonResultModel();

                model.GenreList = new List<string>();

                model.GenreList.Add("Politik & Weltgeschehen");

                model.GenreList.Add("Politik & Zeitgeschehen");

                model.ContentUrl = "http://83.125.32.32/hbbtv-ard/";

                model.Title = i + ". Franziskus' Kampf um Reformen geht in die heikle Phase";

                model.ThumbnailUrl = "http://83.125.32.35/hbbtv-ard/";

                model.Description = "Im Ringen um Reformen in der katholischen Kirche haben sich Tonfall und Gangart im Vatikan verschärft. In der Kurie und bei brennenden Fragen zu Ehe, Familie und Sexualmoral fehlen dem Papst eindeutige Mehrheiten. Gegner wittern Morgenluft. (Autor: Mike Lingenfelser)";

                model.Id = i;

                model.CreatedDate = String.Format("{0:yyyy-MM-dd}", new DateTime(2014, 12, 02));

                model.UpdatedDate = String.Format("{0:yyyy-MM-dd}", new DateTime(2014, 12, 02));

                model.Extends = text;


                item.ResultList.Add(model);

            }

            return item;

        }


중간에 AppDomain.CurrentDomain.GetData("DataDirectory").ToString() + @"/1.xml" 이 부분인데 "DataDirectory"라고 해도 App_Data폴더 주소가 나오는게 신기(?)했다.


-출처 : http://stackoverflow.com/questions/1268738/asp-net-mvc-find-absolute-path-to-the-app-data-folder-from-controller

'Programming > C#, ASP' 카테고리의 다른 글

Mono project  (0) 2015.04.22
Deployment Dependency Problems  (0) 2015.02.06
C# XML/XmlReader  (0) 2015.01.20
Troubleshooting Common Problems with the XmlSerializer  (0) 2015.01.20
ASP.NET Web API 도움말 페이지 작성하기  (0) 2015.01.15

+ Recent posts