게 알 수 있습니 CLR 원수에 변경되지 않는 객체 간에 AppDomains 참조에 의해?

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

문제

마샬링할 때 사 AppDomains 습니다.NET CLR 나 직렬화체(가있는 경우 Serializable 특성)을 생성하는 프록시(면에서 상속 MarshalByRef)

문자열과 함께 그러나 CLR 니다 그냥 통과한 참조하여 문자열로 새로운 사용되지 않.CLR 여전히 무결성을 보장합니다.NET 문자열은 변경할 수 없으며 변경하여 두 번째 사용되지 않는 문자열에 영향을주지 않습니다 원래 개체입니다.

제공하는 질문:는 방법이 있을 말 CLR 는 내용 유형을 변경할 수 없을 때에 사용되는 원격을 그냥 통과하는 객체에 대한 참조로 그것이 문자열 등?

도움이 되었습니까?

해결책

실제로 마샬링 상당히 까다로운.

은 행동을 설명하라고"원수-by-피",런타임이 그것을 사용하수 문자열이다(때로는)그리고 원수 시스템입니다.Threading.실다.

로까지 말할 수 없어이(해당 문서에서 언급 정의할 수 있는 사용자 지정 정렬의 행동 하지만 나는 찾을 수 없습니다 어떤 설명서에 있는 그것),당신은 잠재적으로 전달 IntPtr 주위 사용하여 안전하지 않은 코드를 시뮬레이션이지만,그것은 냄새가 거대한 해킹다.

다른 팁

나는 생각하지 않는게 아니다.이하는 것처럼,프리미티브가 직접 처리합니다.

당신은 단지 두 마샬링을 의미합니다.NET 원격:marshal by value(를 제공합니다)및 marshal by reference(MarshalByRef).

당신이 언급하여,문자열 값으로 마샬링으로,시스템입니다.문자열이 마련되어 가족과 친구와 더불어를 제공합니다.

전달하려는 경우 귀하의 개체 사이의 응용 프로그램 도메인하고 원하는 사본(에서 변경없이 해당 개체에서의 원격 응용 프로그램을 도메인 영향을 미치는 객체에 지역 도메인)다음 당신이 원하는 무엇을 사용하는 것입를 제공합니의 클래스입니다.

이게 도움이 되었으면 좋겠습니다.

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