配置静态属性与spring.NET [英] Configure static properties with spring.NET
本文介绍了配置静态属性与spring.NET的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
什么是配置与spring.NET下面的类最佳做法?
What are best practices to configure following class with spring.NET?
using System.Collections.Generic;
using Edu3.DTOModel;
namespace Edu3.Data.SubsonicProvider.RepositoryFramework
{
public static class RepositoryFactory
{
private static readonly Dictionary<string, object> Repositories =
new Dictionary<string, object>();
static RepositoryFactory()
{
Repositories.Add(typeof(ISsoUrlTemplateRepository).Name,
new SsoUrlTemplateRepository());
Repositories.Add(typeof(IPackageSessionNodeRepository).Name,
new PackageSessionNodeRepository());
Repositories.Add(typeof(IPackageSessionNodeFinishedRepository).Name,
new PackageSessionNodeFinishedRepository());
}
public static IRepository<TEntity> GetRepository<TEntity, TRepository>()
where TEntity : IEntity
{
var interfaceShortName = typeof(TRepository).Name;
// The provider was in the cache, so retrieve it
var repository = (IRepository<TEntity>)Repositories[interfaceShortName];
return repository;
}
}
}
我想用Spring.NET添加存储库。这可能吗?
I would like to add the repositories with Spring.NET. Is this possible?
推荐答案
揭露字典作为一个公共财产,并删除该字段的readonly修饰符,不要使你的类是静态的。然后,使用此配置:
Expose the dictionary as a public property and remove the readonly modifier of the field and don't make your class static. Then use this configuration:
<object id="RepositoryFactory" type="Edu3.Data.SubsonicProvider.RepositoryFramework. RepositoryFactory, Edu3.Data.SubsonicProvider.RepositoryFramework">
<property name="Repositories">
<dictionary key-type="System.Type" value-type="System.Object">
<entry value-ref="SsoUrlTemplateRepository">
<key>
<expression value="T(Edu3.Data.SubsonicProvider.RepositoryFramework.SsoUrlTemplateRepository, Edu3.Data.SubsonicProvider.RepositoryFramework)"/>
</key>
</entry>
</dictionary>
</property>
</object>
<object id="SsoUrlTemplateRepository" type="Edu3.Data.SubsonicProvider.RepositoryFramework.SsoUrlTemplateRepository, Edu3.Data.SubsonicProvider.RepositoryFramework" singleton="false"/>
这篇关于配置静态属性与spring.NET的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文