jaki sposób można użyć metody Server.MapPath w klasie biblioteki klasy C#, który działa jak mój BusinessLayer My ASP.NET WebsiteServer.MapPath w C# classlibrary
Odpowiedz
Nazywając go?
var path = System.Web.HttpContext.Current.Server.MapPath("default.aspx");
Należy dodać odniesienie do zestawu System.Web.
Należy odwołać System.Web i zadzwonić:
HttpContext.Current.Server.MapPath(...)
Może mógłby streszczenie to jako uzależnienia i utworzyć IVirtualPathResolver. W ten sposób Twoje klasy usług nie będą związane z System.Web i możesz utworzyć kolejną implementację, jeśli chcesz ponownie wykorzystać swoją logikę w innej technologii interfejsu użytkownika.
Ścieżkę podstawową można uzyskać, używając poniższego kodu i dodając do tego ścieżkę.
string path = System.AppDomain.CurrentDomain.BaseDirectory;
Użyj tego System.Web.Hosting.HostingEnvironment.MapPath().
HostingEnvironment.MapPath("~/file")
Ciekawe, dlaczego nikt o tym tutaj nie wspomniał.
HostingEnvironment.MapPath
System.Web.Hosting.HostingEnvironment.MapPath (ścieżka);
Architektonicznie, System.web nie powinien być skierowany w Business Logic Layer (BLL). Zastosuj BLL do struktury rozwiązania, aby postępować zgodnie z zasadą odrębnej kwestii, dlatego polecaj System.Web to zła praktyka. BLL nie powinien ładować/uruchamiać w kontekście Asp.net. Z tego powodu powinieneś rozważyć użycie System.AppDomain.CurrentDomain.BaseDirectory
zamiast System.Web.HttpContext.Current.Server.MapPath
- 1. Server.MapPath()
- 2. Korzystanie Server.MapPath w MVC3
- 3. Używanie Server.MapPath w zewnętrznych klasach C# w ASP.NET
- 4. Nie można użyć Server.MapPath
- 5. Nancy: czy istnieje odpowiednik Server.MapPath ("~ /")?
- 6. Microsoft Web API: jak zrobić Server.MapPath?
- 7. Razor dla plików .cshtml w bibliotece .Net ClassLibrary
- 8. Używanie Server.MapPath() wewnątrz statycznego pola w ASP.NET MVC
- 9. Jak korzystać z Server.MapPath wewnątrz projektu biblioteki klas
- 10. Jak uzyskać bezwzględną ścieżkę w ASP netto podstawowej alternatywny sposób na Server.MapPath
- 11. Konwersja base64 na obraz w C#
- 12. C# zapisywanie plików w folderze na serwerze zamiast lokalnego
- 13. jak odczytać komentarze arkusza programu excel w C#
- 14. Odwoływanie się do "importowania" zestawów Pythona podczas wywoływania z IronPython w języku C#
- 15. Matlab w C C++ i C C++ w matlab
- 16. Jak wyzwalać zdarzenie na różnych zajęciach?
- 17. Definicja napisów C w C/C++
- 18. main() w C, C++, Java, C#
- 19. C Złożone liczby w C++?
- 20. (c = getchar())! = EOF w C#?
- 21. Obracanie obrazu w C/C++
- 22. C# Enum w bibliotece C++
- 23. C/C++ w systemie Android?
- 24. czwartorzędowych bibliotek w C/C++
- 25. Przecinek w C/C++ makro
- 26. użyciu scanf w C/C++
- 27. Co to jest odpowiednik C# w dynamicznym C++ w C++?
- 28. Różnice w lotności w C# i C
- 29. Jak używać zewnętrznego "C" do wywoływania funkcji C++ w C
- 30. C++ referencyjne i const wskaźniki w C/C++
Należy powiedzieć, że zestaw system.web nie istnieje w .NET framework 4 – Arash
Najgorsze rozwiązanie! Co się stanie, jeśli będziemy musieli korzystać z klas Business Layer poza kontekstem HTTP? –
Oto odpowiednia odpowiedź http://stackoverflow.com/questions/12294458/asp-net-mvc-4-use-server-mappath-in-business-layer –