小编Bat*_*tuu的帖子

为什么System.AppDomain.CurrentDomain.BaseDirectory会返回不同的结果?

我在app.config中存储了我的数据库路径(包含一些xml文件的文件夹).在启动时我检查,如果路径存在.如果它不存在,我想将路径设置为默认路径.代码如下所示:

public void CheckAndRepairSettings()
{
        /* Check Paths */
        if(GetDatabasePath() == null)
             SetDatabasePath(System.AppDomain.CurrentDomain.BaseDirectory + "DataBase");
}
Run Code Online (Sandbox Code Playgroud)

GetDatabasePath()从app.config读取路径并将路径SetDatabasePath()写入app.config.这些方法工作正常.

我的问题是System.AppDomain.CurrentDomain.BaseDirectory.如果我在我的应用程序调试模式下运行它,我得到:"F:\ Office\Projekte_Software\ServiceTool\_Work\ServiceSoftware\ServiceSoftware\bin\Debug \"

我还使用NUnit进行一些单元测试.如果我在调试模式下运行NUnit,我得到:"F:\ Office\Projekte_Software\ServiceTool\_Work\ServiceSoftware\ServiceSoftware.UnitTests\bin\Debug"

在NUnit调试模式下,路径中没有尾部反斜杠"\",所以当我连接我的路径字符串时,我得到一个不存在的路径CheckAndRepairSettings().

为什么这个行为如此不同?

c# directory wpf path

3
推荐指数
1
解决办法
3655
查看次数

任何避免ShowDialog()阻止Messenger的解决方案?

我正在开发一个基于mvvm light toolkit的项目.我有一个MainView和一个DetailsView相应的ViewModels.两个虚拟机都注册了NotificationMessage.

// MainViewModel.cs and DetailsViewModel.cs
private void RegisterMessages()
{
    Messenger.Default.Register<NotificationMessage>(this, NotificationMessageHandler);
}
Run Code Online (Sandbox Code Playgroud)

收到"ShowDetails"消息时,MainViewModel调用创建"DetailsView"的服务

// MainViewModel.cs
private void NotificationMessageHandler(NotificationMessage msg)
{
    if (msg.Notification == "ShowDetails")
    {
        _detailsService.ShowDetails(); // Does something like (new DetailsView).ShowDialog()
    }
}
Run Code Online (Sandbox Code Playgroud)

DetailsView用途ViewModelLocator,以获得现有DetailsViewModal的DataContext的.

DetailsViewModel应该接收"ShowDetails"消息来更新其内部状态或要求的一些数据,也.

// DetailsViewModel.cs
private void NotificationMessageHandler(NotificationMessage msg)
    {
        if (msg.Notification == "ShowDetails")
        {
            UpdateViewModel();
        }
    }
Run Code Online (Sandbox Code Playgroud)

现在的问题是:因为我希望它DetailsView是一个模态窗口,我会调用ShowDialog()它.这似乎阻止了信使,直到DetailsView再次关闭.因此,DetailsViewModal在模态窗口关闭后接收消息.有没有解决方法可以解决这个问题?

如果我能在DetailsViewModal …

c# wpf modal-dialog mvvm-light

1
推荐指数
1
解决办法
406
查看次数

标签 统计

c# ×2

wpf ×2

directory ×1

modal-dialog ×1

mvvm-light ×1

path ×1