2012-07-12 3 views

답변

3

나는 HCL에 동의한다. 나는 할 수 없다고 생각하고 네임 스페이스를 추가하면 더 많은 리소스를 소비하지 않을 것이라고 생각한다.

대체 방법을 알려 드리겠습니다. 네임 스페이스를 포함하도록 창 템플릿을 변경하거나 자신의 템플리트 중 하나를 만들 수 있습니다. 내 컴퓨터에서

, VS2010 들어, 템플릿의 경로는 다음과 같습니다
C : \ 프로그램 파일 마이크로 소프트 비주얼 스튜디오 \ (86) 10.0 \ Common7 \ IDE \ ItemTemplates \ 비주얼 베이직 \ WPF 3082

\ 참고 하나는 vb.Net 용이고 CSHARP 디렉토리도 있습니다.

편집 :

지금까지 내가, 템플릿이 아닌 각 프로젝트에 대해, 각 컴퓨터에 대해 알고 있지만 템플릿을 편집 할 때, 예를 들어, 조건문을 사용할 수 :

$if$ ($targetframeworkversion$ >= 3.5)using System.Linq; 

$ rootnamespace $ 상수를 사용하여 특정 프로젝트를 확인한 다음 네임 스페이스를 추가 할 수 있습니다. 어쩌면 현재 프로젝트 이름을 가진 상수가 존재할지 모르지만, $ rootnamespace $는이 목적을 위해 충분해야합니다.

+1

+1 멋진 아이디어, 특정 프로젝트 또는 솔루션에 가능하면 더 좋을 것입니다. – HCL

1

아니요,이를 피할 방법이 없습니다. 그러나 네임 스페이스 선언이 리소스를 소비한다는 것을 의미하지는 않습니다 (런타임시).

2

Engine 네임 스페이스에서 사용하는 어셈블리의 소스 코드가 있다면 접두사 재구성과 무언가를 추가해야 할 필요성을 완전히 제거 할 수 있습니다. 이 작은 트릭을 사용하면 xaml 네임 스페이스에 all namespace를 추가 할 수 있습니다.

xmlns : Engine 라인이있는 프로젝트가 아닌 "Engine"프로젝트에서 이 사용하는 프로젝트와 동일 할 수 없다면 작동하지 않습니다.) WindowsBase 참조가 있는지 확인하십시오 추가 한 다음 AssemblyInfo.cs/AssemblyInfo.vb 파일 (C# : Properties 폴더에 있음)에 다음을 추가하십시오 (vb : "Show All Files"단추를 사용해야 만 내 프로젝트에서 찾을 수 있습니다. 폴더) :

C 번호 :

[assembly: XmlnsDefinition("http://schemas.microsoft.com/winfx/2006/xaml/presentation", "The.Class.Namespace")] 

VB :

<Assembly: XmlnsDefinition("http://schemas.microsoft.com/winfx/2006/xaml/presentation", "The.Class.Namespace")> 

다른 프로젝트 xaml에서 사용하려는 네임 스페이스보다 많은 클래스가있는 프로젝트를 만들면이 작업을 여러 번 수행 할 수 있습니다.

관련 문제