我有一个抽象的基本控制器,它有一个构造函数,我希望在构建控制器时由autofac填充.
public abstract class BaseController : Controller
{
protected ILogger { get; private set; }
protected BaseController()
{
}
protected BaseController(ILogger logger)
{
Logger = logger;
}
}
Run Code Online (Sandbox Code Playgroud)
当我从它派生一个控制器时,这似乎不起作用.
当我从控制器显式地显式调用构造函数时,我只能使它工作.这是正确的方法吗?
public class PublicController : BaseController
{
public PublicController()
{
}
public PublicController(ILogger logger) : base(logger)
{
}
}
Run Code Online (Sandbox Code Playgroud)
此外,使用mvc集成程序集,似乎没有办法共享容器供其他类进行自己的解析.我在某处读到这不鼓励,为什么不呢?这只是为了解耦任何单个ioc框架的依赖性吗?构造函数注入是在heirachy中填充依赖的唯一方法.
谢谢
我正在尝试评估在新系统中使用哪种通信技术,现在看起来Remoting是我们唯一的选择,因为WCF的性能非常糟糕.
与调用控制台应用程序中托管的远程接口相比,我使用nettcp对IIS7中托管的WCF服务进行了基准测试.WCF服务需要大约4.5秒来执行1000个请求,在端点上同步(它只返回一个对象的新瞬时).远程客户端需要<0.5秒才能执行相同的任务.
这是WCF客户端代码:
public class TcpNewsService : INewsService
{
private INewsService _service = null;
Lazy<ChannelFactory<INewsService>> _newsFactory = new Lazy<ChannelFactory<INewsService>>(() =>
{
var tcpBinding = new NetTcpBinding
{
//MaxBufferPoolSize = int.MaxValue,
//MaxBufferSize = int.MaxValue,
//MaxConnections = int.MaxValue,
//MaxReceivedMessageSize = int.MaxValue,
PortSharingEnabled=false,
TransactionFlow = false,
ListenBacklog = int.MaxValue,
Security = new NetTcpSecurity
{
Mode = SecurityMode.None,
Transport = new TcpTransportSecurity
{
ProtectionLevel = System.Net.Security.ProtectionLevel.None,
ClientCredentialType = TcpClientCredentialType.None
},
Message = new MessageSecurityOverTcp
{
ClientCredentialType = MessageCredentialType.None }
},
ReliableSession = new OptionalReliableSession …Run Code Online (Sandbox Code Playgroud) 我在Asp.Net上运行一个相当成功的成人网站(c#4.0),带有一个Sql Server 2008 R2后端.我们正在运行免费(Express)版本,并且接近我们的10gb数据限制.我们有大约10万名会员,并获得超过700万的页面展示次数(750K唯一身份访问者).
我正在寻找免费(或廉价)的替代品,因为我们买不起微软正在收取标准版处理器许可费的7,000美元+.我们没有太多希望获得他们的商业火花计划的免费许可证!
我们对任何会员数据库都有一个相当典型的架构.我们正朝着更加社交的方向发展,所以想想成人Facebook.我们目前在数据库中有42个表.我意识到规模问题.我们一直在以极快的速度增长,因此正在考虑采用NoSql替代方案.
所以,我正在考虑Postgres和RavenDB.Postgres在代码更改和数据迁移方面的摩擦力最小.但是,如果我们要成为Facebook(lolz),那么我最终会再次编写数据层(这让我感到难过).
所以可能现在开始使用NoSql解决方案,例如内置分片的RavenDb或Mongo.
思考?
.net ×1
abstract ×1
autofac ×1
constructor ×1
nosql ×1
open-source ×1
remoting ×1
sql-server ×1
wcf ×1