我目前正在使用StructureMap建立ASP.Net核心架构。我的图层是:
我不想跳层,因此他们之间的知识:
我的问题:我通过扫描约定注册StructureMap:
internal static IServiceProvider ConfigureIoC(IServiceCollection services)
{
var container = new Container();
container.Configure(
config =>
{
config.Scan(
_ =>
{
_.AssembliesFromApplicationBaseDirectory();
_.AddAllTypesOf(typeof(IRepository<>));
_.WithDefaultConventions();
});
config.Populate(services);
});
var result = container.GetInstance<IServiceProvider>();
return result;
}
我的问题,我想在DataAccess图层上注册一些服务作为单身人士。但由于API对此一无所知,我不能在这里说出来。 我通常的做法是创建一个Marker-Interface,通过Reflection加载所有这些并调用它们,例如:
public class ServiceRegistration : Common.ServiceProviding.Initialization.IRegisterServices
{
public void RegisterServices(IServiceCollection serviceCollection)
{
serviceCollection.AddScoped<Logics.Integration.Rest.IRestProxy, Rest.Implementation.RestProxy>();
}
}
我找不到StructureMap的一些开箱即用的可能性,但由于他们已经添加了扫描装配件等的功能,我想我错过了一些功能,这可以使这个工作,还是有其他可能性?< / p>
答案 0 :(得分:1)
您可以在DataAcess层中定义自定义注册表。
bindView()
然后使用if(devoir == 1) {
cbdevoir.setVisibility(View.VISIBLE);
} else {
cbdevoir.setVisibility(View.GONE);
}