luv*_*ere 4 .net c# wpf working-directory
如何在设计时从我的WPF应用程序获取应用程序的目录?我需要在设计时访问应用程序当前目录中的资源,而我的XAML正在设计器中显示.我无法在设计时使用此问题中指定的解决方案,System.IO.Path.GetDirectoryName(Process.GetCurrentProcess().MainModule.FileName)并System.Reflection.Assembly.GetExecutingAssembly().Location指向IDE的位置(Visual Studio ... Common7或其他东西).
根据要求进一步明确我的目标:我想在设计时访问数据库表并显示该数据的图形.设计是在Visual Studio 2008中完成的,所以我需要的是针对特定问题的非常具体的解决方案,即获取我的应用程序的程序集目录.
从您的描述中可以看出,您的代码实际上是在Visual Studio中的WPF Designer中运行,例如,它是用于设计的自定义控件库的一部分.
在这种情况下,Assembly.GetEntryAssembly()返回null,但以下代码获取应用程序目录的路径:
string applicationDirectory = (
from assembly in AppDomain.CurrentDomain.GetAssemblies()
where assembly.CodeBase.EndsWith(".exe")
select System.IO.Path.GetDirectoryName(assembly.CodeBase.Replace("file:///", ""))
).FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)
以下步骤可用于演示VS.NET 2008的WPF Designer工具中的这些工作:
当您按照这些步骤操作时,您正在查看的对象将在运行时和设计时以相同的方式填充数据库中的数据.
还有其他方案可以使用相同的技术,并且根据您的需要还有其他可用的解决方案.如果您的需求与我上面假设的不同,请告诉我们.例如,如果您正在编写VS.NET加载项,那么您将处于完全不同的球类游戏中.