데스크탑과 웹 모두에 사용되는 라이브러리에서 정적 변수를 처리하는 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/1912890

  •  19-09-2019
  •  | 
  •  

문제

정적 변수를 사용하는 C# 라이브러리 클래스가 있습니다. 이 라이브러리 클래스를 데스크탑 및 웹 응용 프로그램에 사용합니다. 문제가 방금 발견 된 바와 같이, 정적 변수는 웹 서버에서는 그렇게 잘 진행되지 않는다는 것입니다. 값은 웹 사이트를 사용하여 모든 세션에서 공유됩니다!

내 웹 서버의 각 세션에서 이러한 변수에 대한 고유 한 독립 값이 있는지 확인하면서 데스크톱 앱에서 사용하기 위해 정적 변수의 기능을 어떻게 보존 할 수 있습니까? 그러나 세션 자체 내에서 여전히 정적처럼 작동합니까?

도움이 되었습니까?

해결책

정적 변수 값은 응용 프로그램 도메인의 모든 스레드에서 공유됩니다. ASP.NET 응용 프로그램에서 현재 사용자와 관련된 데이터를 저장하는 권장 방법은 세션.

이 공유 라이브러리의 코드를 수정할 수 있다면 값을 저장하는 메커니즘을 제공 할 이러한 정적 변수에서 인터페이스를 추출하는 것이 좋습니다. 이를 통해 각 응용 프로그램은 자체 구현을 제공 할 수 있습니다. Windows 응용 프로그램의 경우 내부적으로 정적 변수를 사용하는 구현을 사용할 수 있습니다. ASP.NET 응용 프로그램의 경우 세션을 사용할 수 있습니다. 그러나 모든 경우에 인터페이스 만 노출시킵니다. 또한 코드를 더 쉽게 렌더링하는 데있어 긍정적 인 부작용이 발생합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top