Windows 및 웹 모두에서 사용되는 공유보고 dll이 있습니다. 지금은 Windows 프로그램을 .NET 4 클라이언트 프로파일로 이동하려고 시도하고 있으므로 System.Web 참조를 피할 필요가 있습니다.System.Web 참조를 피하기 위해 반사
일부 지점에서 코드는 웹 사이트의 디렉토리 또는 dll 디렉토리를 가져와야합니다.
string path;
if (HttpContext.Current != null)
{
path = HttpContext.Current.Server.MapPath("default.aspx");
}
else
{
path = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
}
난 아직 적절한 경로를 얻을 수 있도록 System.Web 참조를 방지하기 위해 반사 또는 유사한을 사용하는 방법이 있나요 :이 같은 코드 뭔가를 사용? 그렇다면 어떻게해야합니까?
어떤 대안이 있습니까?
편집 이 나는 스타일 시트 파일을 보고서에 적용 할 수 있습니다보고 시스템을 사용하는 것입니다 내가하고 싶은 이유 (나는 모든 보고서에 대해이 작업을 수행). 내가 이전에 DLL 자체에서 가지고 있던 설정으로 mystylesheet.repss.So 스타일을 변경하려면 dll에서 변경하고 모든 보고서에 적용됩니다. 그런 다음 적절한 repss 파일을 Windows 및 웹 사이트의 루트 디렉토리에 저장하는 경우입니다. 그리고 그들에게 적절한 경로를 찾는다.
dll로 상대 경로를 사용하면 문제가 발생합니다. 보고서. \ mystylesheet.repss는 Windows에서 제대로 작동하지만 ~/mystylesheet.repss. \ mystylesheet.repss 또는 웹의 dll에서 생각할 수있는 다른 내용은 잘못된 디렉토리 "c : \ windows \ system32 \ inetsrv ".
나는 각기 다른 창과 웹 응용 프로그램으로 설정을 옮겨서 전체 경로와 함께 전달할 수 있습니다. 실제로는 dll에 대한 내부 설정 일 때 거꾸로 표시됩니다.
모두 의미가 있습니다.
클라이언트 코드에서 기본 경로를 라이브러리로 전달하는 것이 좋지 않습니까? – Lazarus
그럴 수는 있지만 할 필요가없는 것을 선호합니다. 나는 왜 내가 이것을하고 싶은지를 설명하기 위해 편집을 추가하고있다. – PeteT