Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.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# 将自定义设置的对象传递给嵌套类_C#_.net_Mvvm_Application Settings - Fatal编程技术网

C# 将自定义设置的对象传递给嵌套类

C# 将自定义设置的对象传递给嵌套类,c#,.net,mvvm,application-settings,C#,.net,Mvvm,Application Settings,在MVVM应用程序中,我有一个管理器类,负责对我的应用程序需要的所有类进行分组,并将它们在单个对象中传递给所有ViewModels 此管理器有一个菜单类、一个客户类和一个设置类。在该设置类中,我将来自两个来源的所有设置分组: 配置App.Config文件 从计算机配置环境变量 例如,如果在我的ViewModel中使用CustomClass1,在它内部使用CustomClass2,并且这个类需要设置,那么我总是必须首先将设置对象传递给CustomClass1,然后传递给CustomClass2

在MVVM应用程序中,我有一个管理器类,负责对我的应用程序需要的所有类进行分组,并将它们在单个对象中传递给所有ViewModels

此管理器有一个菜单类、一个客户类和一个设置类。在该设置类中,我将来自两个来源的所有设置分组:

  • 配置App.Config文件
  • 从计算机配置环境变量
例如,如果在我的ViewModel中使用CustomClass1,在它内部使用CustomClass2,并且这个类需要设置,那么我总是必须首先将设置对象传递给CustomClass1,然后传递给CustomClass2,其中设置已经定义

有没有办法让这更好

代码示例:

公共类设置{
来自_环境{get;}的公共字符串
_WEBSERVICE{get;}的公共字符串URL_
公共设置(){
来自_Environment=Environment.GetEnvironmentVariable(“ENV_1”)??Environment.GetEnvironmentVariable(“ENV_2”)??MY_DEFAULT_ENV;
\u WEBSERVICE的URL\u=Properties.Settings.Default.URL\u;
}
}
公共类管理器
{    
公共客户客户{get;}
公共设置{get;set;}
公共经理(){
客户=新客户();
设置=新设置();
}
}
public类主视图模型{
公共管理器{get;set;}
公共CustomerViewModel CustomerVM{get;set;}
公共主视图模型(){
经理=新经理();
CustomerVM=新的CustomerViewModel(Manager);
}
}
public类CustomerViewModel{
私有管理器{get;}
公众客户{
get=>Manager.Customer;
}
公共设置{
get=>Manager.Settings;
}
公共客户服务模型(经理_经理){
经理=_经理;
CustomClass1=新CustomClass1(设置);
}
}
公共类海关1{
公共设置设置{get;}
公共自定义类别1(设置\u设置){
设置=_设置;
}
公共任务(){
CustomClass2 class2=新CustomClass2(设置);
}
}
公共类CustomClass2{
公共设置设置{get;}
公共CustomClass2(设置\u设置){
//在这里,我需要一个设置和对象从Manager传递到MainViewModel、CustomServiceWModel、CustomClass1,最后传递到CustomClass2。。。
}
}

对我来说似乎不错。如果你想要更智能的东西,可以看看依赖注入或IServiceProvider。我有点新手,所以我不认为在这里使用依赖注入有什么好处。至少在这种情况下,发送一种类型的对象或一个接口是一样的,我必须在之前实例化该对象并传递所有类。。你能给我一些提示或建议,让我做一些“更聪明”的事情吗??谢谢你的评论!