Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#WPF MVVM模式逻辑和UI分离,其中app.config的逻辑_C#_Wpf_Mvvm - Fatal编程技术网

C#WPF MVVM模式逻辑和UI分离,其中app.config的逻辑

C#WPF MVVM模式逻辑和UI分离,其中app.config的逻辑,c#,wpf,mvvm,C#,Wpf,Mvvm,我在我的C#WPF应用程序中使用MVVM light和MVVM模式。UI(视图)和逻辑是分开的,这意味着逻辑(ViewModels、Models、DAL等)位于DLL中,但我不知道,我必须在其中存储我的逻辑以读取UI的App.config中存储的appsettings 解决方案1: MainViewModel内部有逻辑,因为它是读取app.config的逻辑 解决方案2: Mainwindow.xaml.cs中有方法 还有一个问题提出: 如果在项目中使用DataAccessLayer,您是将类存

我在我的C#WPF应用程序中使用MVVM light和MVVM模式。UI(视图)和逻辑是分开的,这意味着逻辑(ViewModels、Models、DAL等)位于DLL中,但我不知道,我必须在其中存储我的逻辑以读取UI的App.config中存储的appsettings

解决方案1: MainViewModel内部有逻辑,因为它是读取app.config的逻辑

解决方案2: Mainwindow.xaml.cs中有方法

还有一个问题提出:

如果在项目中使用DataAccessLayer,您是将类存储在项目中viewmodels和models(业务逻辑)所在的位置,还是将DAL分离到新类库中,并在viewmodels中使用DLL

我必须在哪里存储逻辑以读取存储在UI的App.config中的appsettings

如果在应用程序启动时直接读取这些设置,我通常会在从App.xaml.cs类的OnStartup方法调用的引导程序类中实现此逻辑

如果稍后在运行时阅读该设置,则可能应该在视图模型中实现该逻辑。窗口/视图不应包含任何应用程序逻辑-仅包含与视图相关的纯逻辑

如果在项目中使用DataAccessLayer,您是将类存储在项目中viewmodels和models(业务逻辑)所在的位置,还是将DAL分离到新类库中,并在viewmodels中使用DLL


DAL(包括访问数据库的类)应该在自己的类库中定义。然后,您可以从定义视图模型的项目中引用此程序集。

任何应用程序只有一个appsettings,并且它是在创建.exe文件的项目中定义的。任何引用的程序集都可以在运行时从该appsettings中读取。