Castle/Windsor新手,请耐心等待.
我目前正在使用框架System.Web.Mvc.Extensibility,并在其启动代码中,它注册了HttpContextBase,如下所示:
container.Register(Component.For<HttpContextBase>().LifeStyle.Transient.UsingFactoryMethod(() => new HttpContextWrapper(HttpContext.Current)));
Run Code Online (Sandbox Code Playgroud)
我想要做的是改变行为并将httpContextBase的生活方式改为PerWebRequest.
所以我将代码更改为以下内容:
container.Register(Component.For<HttpContextBase>().LifeStyle.PerWebRequest.UsingFactoryMethod(() => new HttpContextWrapper(HttpContext.Current)));
Run Code Online (Sandbox Code Playgroud)
但是,当我这样做时,我收到以下错误:
System.Configuration.ConfigurationErrorsException: Looks like you forgot to
register the http module Castle.MicroKernel.Lifestyle.PerWebRequestLifestyleModule
Add '<add name="PerRequestLifestyle"
type="Castle.MicroKernel.Lifestyle.PerWebRequestLifestyleModule, Castle.MicroKernel"
/>' to the <httpModules> section on your web.config
Run Code Online (Sandbox Code Playgroud)
这是我做下<system.web>和<system.webServer>,但是,我仍然得到同样的错误.任何提示?
提前致谢.
更新
每个请求添加了代码块
在system.web.mvc.extensibility框架中,有一个名为extendedMvcApplication的类,它继承自HttpApplication,在Application_start方法中,它调用BootStrapper.Execute().此方法的实现如下:
public void Execute()
{
bool shouldSkip = false;
foreach (IBootstrapperTask task in ServiceLocator.GetAllInstances<IBootstrapperTask>().OrderBy(task => task.Order))
{
if (shouldSkip)
{
shouldSkip = false;
continue;
}
TaskContinuation continuation = task.Execute(ServiceLocator);
if (continuation == TaskContinuation.Break) …Run Code Online (Sandbox Code Playgroud) 我试图UITableView通过将设置allowsMultipleSelectionDuringEditing为来删除我的某些行YES。一切都很好。圆圈显示在左侧。
但是,对于某些单元格,我不希望左侧的圆圈出现。我怎么做?我cell.selectionStyle = UITableViewCellSelectionStyleNone在编辑过程中尝试过,但是没有用。
有什么提示吗?
根据https://developer.apple.com/library/ios/documentation/StoreKit/Reference/StoreKitTypes/Reference/reference.html,SKErrorPaymentCancelled表示用户取消了付款请求.但是,在我们的生产应用程序中,我们收到错误代码= SKErrorPaymentCancelled的失败事务,但是用户的帐户收费(用户稍后将收据作为证明发送).看错误,它说"无法连接到iTunes商店".我们做错了吗?即使错误是SKErrorPaymentCancelled,为什么用户会收费呢?
请注意,当应用程序开始捕获所有错过的事务时,我们也会监听事务.
在这里对asp.net mvc的设计/使用有疑问.
在html帮助器类中,您可以通过Html.ViewContext.Controller访问当前控制器.此外,您可以从html帮助程序类获取请求,路径集合等等.
这不违反MVC的规则吗?这不是为开发人员开辟了一种在视图中执行重度控制器相关代码的方法吗?
如果没有,那么来自html帮助器类的当前viewcontext和controller的最佳实践用例是什么?
提前致谢.
我们正在尝试将NHibernate集成为我们的OR/M,但是,我们目前正在使用Enterprise Library的日志记录应用程序块.我知道NHibernate使用log4net来记录.有没有人有任何关于如何使用Enterprise Library来记录NHibernate相关日志的例子?
只是想知道DAL是否有任何最佳实践来表示空值(来自可空列).
我们目前拥有自己的内部DAL,并使用int.MinValue表示null值.然而,这种上升令开发人员认为在比较值时,我们故意在int.MinValue上强加另一个"添加"值,并且在DAL层中将int.MinValue用于空值这一事实令人困惑.所以其他人提出了来自.net 2.0的NullValue,但我们发现这种方法也存在性能和语法问题:
那么,你对此有何看法?其他着名的ORM如何处理空值?围绕这个问题是否有最好的做法?
为了让城堡温莎的拦截器拦截一个方法,该方法是否需要公开?
aop castle-windsor castle-dynamicproxy ioc-container interceptor
我有以下方法;
public class MyClass
{
public Repository UserRepository { get; set; }
public void CreateUser(Message someMsg)
{
if (someMsg.CanCreate)
{
var obj = new object();
UserRepository.Save(obj)
}
}
}
Run Code Online (Sandbox Code Playgroud)
在我的测试用例中,我使用Moq来模拟ObjRepository,我想在"Save()"方法上调用verify.但是,save方法接受在被测方法中创建的对象,我无法模拟.
不管怎么说,使用Moq?我做错了吗?
我刚刚将我的控制器转换为asp.net mvc 2中的asyncController.(即:分割动作方法关于AboutAsync和AboutCompleted).但是,我收到资源未找到错误.
我的路线表没有变化,我能想到的唯一原因是因为我是mvcextension项目.既然它是自己的controllerFactory接线并从IoC容器创建实例,它是否需要连接AsyncHttpHandler呢?任何人都可以放弃一些提示吗?
提前致谢.
好的,所以这里是设置.我正在构建一个页面,其中包含一个listview,一个datapager和3个datapagerfield(2个NextPreviousPagerField,1个NumericPagerField),以及一个objectdatasource来将所有这些结合在一起.
在我将一个断点放入objectdatsource控件中指定的SelectMethod之前,一切正常.对于每个datapagerfield控件,它似乎都在调用selectmethod和selectcount方法.因此,无论何时用户进行分页,它都会调用数据库6次而不是2次(我没有打开缓存atm).如果我删除一个datapagerfield,它将删除2个调用.
现在这是在VS2008中的asp.net 3.5 SP1中构建的.当我将相同的代码文件复制到asp.net 4.0 VS2010解决方案时,它的重复调用似乎已经消失.
这是asp.net 3.5 SP1中的错误吗?
提前致谢
c# ×3
asp.net-mvc ×2
ios ×2
.net ×1
aop ×1
asp.net ×1
controller ×1
datapager ×1
interceptor ×1
itunes ×1
listview ×1
log4net ×1
moq ×1
nhibernate ×1
nullable ×1
storekit ×1
uitableview ×1
unit-testing ×1
view ×1