C# 형식을 사용하여 게임 편집기를 만들려고합니다. 역 직렬화와 관련하여 문제가 발생했습니다. 프로젝트에 컨텐트 참조를 추가 할 수있는 옵션조차 없기 때문에 양식 애플리케이션에서 컨텐트 파이프 라인을 사용할 수 없습니다. 양식 파이프 라인을 사용하려면 어떻게해야합니까? XML 컨텐트를로드하고 역 직렬화하는 또 다른 방법이 있습니까?C# 형식의 XNA 콘텐츠 파이프 라인 사용
답변
수동
<ProjectTypeGuids>{6D335F3A-9D43-41b4-9D22-F6F17C4BE596};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
당신은 아마 필요도 추가 할거야 .csproj 파일을 편집하고 어셈블리 이름이 들어있는 첫 번째 PropertyGroup
섹션 GUID 등 프로젝트에 다음을 추가
<XnaFrameworkVersion>v4.0</XnaFrameworkVersion>
<XnaPlatform>Windows</XnaPlatform>
VS에서 프로젝트를 다시로드하면 컨텐츠 참조를 VS에 추가 할 수 있습니다.
거기에 지정된 두 GUID는 Windows 및 XNA (Windows) 용입니다. 프로젝트의 타겟을 다시 지정해야하는 경우 여기에 약간의 날짜가 있지만 some common project type guids의 목록이 있습니다.
Winforms Series 2: Content Loading AppHub sample을 살펴보십시오.
기본적으로 적절한 microsoft.xna.framework.content
클래스를로드하고 호출하여 컴파일 된 xnb 파일을 읽습니다.
microsoft.xna.framework.content.pipeline
내의 네임 스페이스에있는 클래스를 사용하여 xnb 파일을 만들 수 있습니다 (콘텐츠 프로젝트가 당신을 위해 무엇을 할 것인지).
콘텐츠 파이프 라인의 개요 여기를 참조하십시오 : What is the Content Pipeline?
내 XML 내용을로드 및 역 직렬화하는 또 다른 방법이 있나요?
예. 원하는 serialize .net 방법을 사용하십시오 (아마도 XDocument
).
빌드 할 때 모든 내용을 처리해야하는 경우 winforms1 샘플을 사용하는 것이 좋습니다. 런타임에 처리해야 할 내용이 있으면 winforms2 샘플을 사용할 수 있습니다. –
OP가 그의 winforms 하나 (어떤 자산을 구축 할 것입니다)에 콘텐츠 프로젝트를 추가하는 것에 대해 물어 봤기 때문에 나는 2 번째 샘플을 찾으러 갔다. –
고맙습니다. 대단히 힘듭니다. 그러나 deserialize 할 때 다음 오류가 발생합니다 : "System.Int32 []. ContentTypeReader를 찾을 수 없습니다." 내가 참조를 놓친 것 같아요 또는 네임 스페이스가 어딘가에 포함되어 있지만 무엇이 있는지 모르겠습니다. 어떤 아이디어? – Jamie