c# - 从不同命名空间中的不同类访问变量
问题描述
我有一个 MVVM 应用程序,我需要在某处声明一个变量并从我的程序集中的任何地方访问它,即从不同命名空间中的不同类。我试图在主类中声明一个内部变量,但它不起作用。有任何想法吗?
解决方案
听起来你想要一个简单的“服务”
namespace en.my.services
{
public class VariableService
{
public string SomeVariable {get; set;}
}
}
您可以在需要的地方注入:
using en.my.services; // Make Service namespace known
namespace en.my.clients
{
public class MyServiceClient
{
VariableService svc = null;
public MyServiceClient ( VariableService varsserv ) // <- Parameter-Injection via
// your DI Framework
{
svc = varserv;
}
public void SomeMethod()
{
svc.SomeVariable = "Update";
}
}
}
我建议也使用接口。因此,您可以通过模拟界面轻松(单元)测试。因此,您将拥有IVariableService
并VariableService
实施它。客户端将获取接口,您的 DI 框架配置将建立从接口到实现的单例实例的连接。
推荐阅读
- tableau-api - Tableau-Quick 表计算不起作用
- express - 为什么这两个axios post方法有不同的结果
- inkscape - Inkscape 查询:为什么我定义的页面尺寸在视觉上与导入的图像不匹配?
- php - Laravel 多对多关系仅适用于第一条记录
- java - 使用 JSOUP 解析 HTMl - 需要特定模式
- r - 如何通过在 R 中保持一些变量静态和动态来重构具有多个变量的数据帧
- php - 使用 SQL 数据库时,在后端使用 Update 语句而不是使用 Prepared 函数的主要好处是什么?
- c# - Google Cloud 上的 .net core 2.2 服务慢启动
- python - 尝试向 Azure REST API 发送 http 请求时出现 Python InvalidHeader 错误
- javascript - 如何让我的按钮在 onclick 事件后停止消失