如何将枚举值注入构造函数?
我的构造函数是:
public AutoComplete(SearchType searcherType, ISearchResultParser searchResultParser, string[] ignoreSearchTerms = null)
我的搜索类型是:
public enum SearchType
{
Document,
PageSearch,
}
我的Autofac注册:
builder.Register(x => new AutoComplete(SearchType.Document,
x.ResolveNamed<ISearchResultParser>(NamedAutofacInstances.AutoCompleteSearchResultParser),
invalidSearchTerms);
问题:
实现枚举的正确方法是什么?
答案 0 :(得分:1)
这样的事情怎么样?
using Autofac;
using Microsoft.VisualStudio.TestTools.UnitTesting;
[TestClass]
public class UnitTest1
{
[TestMethod]
public void Test1()
{
var builder = new ContainerBuilder();
builder.RegisterType<AutoComplete>()
.WithParameter((pi, c) => pi.ParameterType == typeof(SearchType),
(pi, c) => SearchType.Document);
var container = builder.Build();
var autoComplete = container.Resolve<AutoComplete>();
Assert.AreEqual(SearchType.Document, autoComplete.SearcherType);
}
}
public class AutoComplete
{
public AutoComplete(SearchType searcherType)
{
SearcherType = searcherType;
}
public SearchType SearcherType { get; private set; }
}
public enum SearchType
{
Document,
PageSearch,
}