我有一个类有这样的构造函数:
private string _someString;
private ObjectA _objectA;
private ObjectB _objectB;
private Dictionary<Enum, long?> _dictionaryA;
private Dictionary<Tuple<Enum,long?>, long?> _dictionaryB;
public SomeDiClass(string someString)
{
_someString = someString;
_objectA = new ObjectA();
_objectB = new ObjectB();
_dictionaryA = new Dictionary<Enum, long?>();
_dictionaryB = new Dictionary<Tuple<Enum, long?>, long?>();
}
Run Code Online (Sandbox Code Playgroud)
我想从这个构造函数中获取依赖项创建.在第一步中,我将ObjectA和B依赖项移动到构造函数参数,以通过构造函数注入注入它们.我想为此目的使用IoC容器,这就是我现在停留的地方.问题是如何使用someString和词典.我需要将它们注入到类中,因为字典的内容将是单元测试的重要部分.通过属性注入注入字符串和字典是不是一个好主意(我不需要在其他类中使用它们),所以我最终会得到这样的东西?:
private ObjectA _objectA;
private ObjectB _objectB;
public string SomeString { get; set; }
public Dictionary<Enum, long?> DictionaryA { get; set; }
public Dictionary<Tuple<Enum, long?>, long?> DictionaryB { get; set; }
public SomeDiClass(ObjectA objectA, ObjectB …Run Code Online (Sandbox Code Playgroud) 我有一个混乱的方法,它生成一个三个字符串的名称.这三个字符串可以为null.我要检查每个可能的组合并根据给定的可用值创建一个字符串.结果名称中的每个变量都没有固定位置/布局,这取决于所有字符串的可用性.
我的方法现在看起来像这样:
private String GetName(string variable, string label, string dimension)
{
string result = String.Empty;
if (!String.IsNullOrEmpty(label) && !String.IsNullOrEmpty(variable) && !String.IsNullOrEmpty(dimension))
{
result = String.Format("{0} [{1}] ({2})", label, dimension, variable);
}
else if (!String.IsNullOrEmpty(label) && !String.IsNullOrEmpty(dimension))
{
result = String.Format("{0} [{1}]", label, dimension);
}
else if (!String.IsNullOrEmpty(label) && !String.IsNullOrEmpty(variable))
{
result = String.Format("{0} ({1})", label, variable);
}
else if (!String.IsNullOrEmpty(label))
{
result = String.Format("{0}", label);
}
else if (!String.IsNullOrEmpty(variable) && !String.IsNullOrEmpty(dimension))
{
result = String.Format("{0} [{1}]", variable, dimension);
}
else …Run Code Online (Sandbox Code Playgroud)