如果我需要在每个应用程序窗口中使用相同的命名空间,是否可以以某种方式避免xmlns:Engine="clr-namespace..."
?
由于
答案 0 :(得分:3)
我同意HCL,我认为无法完成,添加命名空间不会消耗更多资源。
我会给你一个替代方案。您可以更改窗口模板(或创建自己的模板)以使其包含命名空间。
在我的电脑中,对于VS2010,模板的路径是:
C:\ Program Files(x86)\ Microsoft Visual Studio 10.0 \ Common7 \ IDE \ ItemTemplates \ VisualBasic \ WPF \ 3082
请注意,一个用于vb.Net,还有一个CSHARP目录。
修改强>:
据我所知,模板适用于每台计算机,不适用于每个项目,但编辑模板时可以使用条件,例如:
$if$ ($targetframeworkversion$ >= 3.5)using System.Linq;
您可以使用$ rootnamespace $ constant检查特定项目,然后添加命名空间。可能存在一个当前项目名称的常量,我不知道,但是$ rootnamespace $应该用于这个pourpose。
答案 1 :(得分:2)
如果它是您自己的引擎名称空间中使用的程序集的源代码,您可以完全删除前缀requerment和添加内容的要求。通过这个小技巧,您只需将自己的命名空间附加到xaml命名空间(包括allready)。
在你的“引擎”项目中(不是你有xmlns:引擎行的项目,不能是你使用它的同一个项目,那么它将不起作用)确保你添加了WindowsBase引用,然后在AssemblyInfo.cs / AssemblyInfo.vb文件中添加以下内容(c#:在Properties文件夹中找到)(vb:您需要使用“显示所有文件”按钮然后您会找到它在我的项目文件夹中):
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的其他项目中使用多个名称空间中的类,那么你可以多次这样做。
答案 2 :(得分:1)
不,没有办法避免这种情况。但是,声明命名空间并不意味着它消耗资源(在运行时)。