2009-03-17 2 views
0

사이트에서 답변을 수락하거나 현상금을 추가하라는 메시지가 표시되므로이를 편집하고 닫습니다.IsolatedStorage는 다른 격리 수준을 보여 주려고 시도합니다. 도메인 격리를 할 수 없습니다.

콘솔 응용 프로그램에서 참조하는 라이브러리에서 GetUserStoreForAssembly 및 GetUserStoreForDomain에 대한 호출이 있었지만 한 케이스에서 기대했던 것보다 많은 스토어를 얻는 이유를 이해하지 못한 실험을했습니다.

Preet 나에게 조정 내 실험을 돕고 나는이 약간 differnt 한 문제를 결국 : 나는 다른 디렉토리로 콘솔 응용 프로그램을 복사 할 때 (그래서 이름이 동일하게 유지)

  • , 내가 가진 두 개의 사용자/어셈블리 저장소 예 : 공유 할 것으로 예상 할 때 복사본 당 하나씩

  • 콘솔 앱 내의 여러 도메인에 라이브러리를로드 할 때 공유하지 않을 때 동일한 사용자/어셈블리/도메인 저장소를 사용했습니다.

그때까지 질문은 춥습니다. 나는 내 자신의 독서를했으며 나는 대답을 찾았다 고 생각했다. 그래서 누군가가 확인/수정하기를 바라는 질문에 대답했다. 그러나 그것은 목록의 아래쪽에서 기회가 없었습니다. 나는 그저 떠날 것이지만 현상금을 수락하거나 추가하라는 메시지를 받았다.

그래서 지금 내 대답을 옮겨 보았습니다. 확인하거나 수정할 수있는 도움이되는 의견을 추가 할 누군가가 필요합니다. 따라서 받아 들일 수 있으며 실제로 격리 된 저장소를 더 잘 이해하고자하는 다른 사람에게 유용 할 것입니다.

첫 번째 질문에

가능한 답 :

강력한 이름의 어셈블리가 강력한 이름으로 식별 물론이다. 약칭 (공식 용어인지는 모르겠지만)은 URL이나 파일 위치로 식별됩니다. 그래서 약하게 assmebly 다른 디렉토리에 복사라는 동일한 이름의 별도의 고립 된 가게가있을 것입니다. 두 번째 질문

가능한 answeranswer (본 대해 덜 특정) GetUserStoreForDomain 의해 반환

범위는 구체적으로는 그 조립체 특정 애플리케이션 내에서 실행되는, 컴퓨터, 사용자, 어플리케이션 및 어셈블리로 제한된다.

실험에 여러 개의 추가 도메인이 생성되었지만 모두 동일한 애플리케이션에 있습니다. 따라서 모두 동일한 도메인 저장소를 사용하고 있습니다.

따라서 도메인 분리를 시뮬레이트하려면 실제로 두 개의 다른 콘솔 응용 프로그램에서 라이브러리를 참조해야합니다.

라이브러리 (따라서 두 콘솔 응용 프로그램 모두)에 강력한 이름이 지정된 경우에만 제대로 작동합니다. 어셈블리를 참조하면 복사된다는 의미가됩니다. 약한 이름을 지정하면 격리 저장소가 분리됩니다.

방금 ​​명명 된 전체 이름을 사용하여 전체 실험을 시도했지만 예상대로 도메인 저장소 2 개와 어셈블리 저장소 1 개를 얻었습니다.

답변

2

하나의 프로그램/프로세스에서 여러 개의 앱 도메인을 만들 수 있습니다. appdomain 안에 어셈블리를로드 할 수 있습니다.호출 각 응용 프로그램 도메인의 방법/조립

당신은 하나의 프로그램/과정에서 여러 응용 프로그램 도메인을 만들 수 있습니다 예 here (appdomains)here (AssemblyIdentity)

+0

아있다. 나는 어제 또는 무엇인가 지쳤을 것임에 틀림 없었다. 나에게 일어난 일은 아니었다. 나는 그들 스스로를 만들 수 있었다. 당신은 또한 첫 번째 질문을 도와 줄 수있는 기회가 있습니까? 내가 어셈블리 정체성에 대한 Google 때마다 버전, 문화, 등등에 대한 것들을 볼 수 있지만 아무것도 실제 파일의 위치와 관련이 ... –

+0

나는 꽤 특정 어셈블리 정체성은 강력한 이름을 기반으로합니다. 격리 된 저장소는이 강력한 이름의 일부 기능을 기반으로 하위 폴더를 만듭니다. 다른 링크가 추가되었습니다. –

+0

도움을받을 수 있는지 궁금하다면 개인적으로 저에게 연락해주십시오. –

0

here이 있습니다. appdomain 안에 어셈블리를로드 할 수 있습니다. 호출 각 응용 프로그램 도메인의 방법/조립

는 예 here

관련 문제