我有一个遗留的Web.Forms应用程序,部分重写为MVC.MVC部分使用autofac作为依赖注入容器.
MVC部分定义了自定义过滤器:
public class CustomActionFilter : ActionFilterAttribute
{
protected ILogger Logger { get; set; }
public CustomActionFilter(ILogger logger) { Logger = logger; }
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
Logger.Log("OnActionExecuting");
}
}
Run Code Online (Sandbox Code Playgroud)
在web.config中禁用Web.Forms集成时,它可以正常工作.Hovewer,当我尝试使用Web.Forms autofac集成时,我得到了与AutofacFilterProviderautofac内部(堆栈跟踪)中某处相关的NullReferenceException .
注意,它CustomActionFilter被注册为全局过滤器,因此它在autofac中注册:
public class FilterConfig
{
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new HandleErrorAttribute());
filters.Add(DependencyResolver.Current.GetService<CustomActionFilter>());
}
}
Run Code Online (Sandbox Code Playgroud)
我试过了:
所以,问题是,有没有办法为MVC和web.forms部分提供幕后依赖解析.我是autofac的新手,对于一般的依赖注入容器来说有点新,所以我可能会错过一些明显的东西.
更新:错误与自定义 …
我有以下 DTO:
public class SomethingRequest {
public string Code { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
Code 必须是唯一的,所以我创建了一个验证器来检查是否已经有提供代码的记录,如下所示
public class SomethingValidator: AbstractValidator<SomethingRequest>
{
public SomethingValidator(ISomethingRepository repo) {
RuleFor(something => something.Code).Must(BeUnique);
}
private bool BeUnique(string code) { ... uniqueness check... }
}
Run Code Online (Sandbox Code Playgroud)
当我使用验证功能时,验证器会自动连接到所有带有 的方法SomethingRequest,这真的很棒。
当条件失败时,我想返回409 ConflictHTTP 状态代码,但400 Bad Request总是返回。
所以,问题是:
400 BadRequest验证器的状态代码吗?我基本上需要实现的是有一个元素(div,span,table,等等)消耗100%的'父高度',如果内容更高则显示滚动.
问题是,只有奇怪的铬和IE可以正常工作height:100%; overflow: auto;.标准中的Firefox,Opera和IE(任何IE 7+,任何"标准")都会忽略溢出并将html元素拉伸到父级大小以下.如果我设置固定高度它可以工作,但我无法确定渲染前的可用高度,有多个可能的值.
简化示例(jsFiddle为此):
<body>
<div id="parent">
<table id='container'>
<tr>
<td>
<div id='element-in-question'>
<!--Content long enough to stretch the div-->
</div>
</td>
</tr>
<tr>
<td id='footer-cell'>
<div id='footer'>I'm footer<div>
</td>
</tr>
</table>
</div>
</body>
Run Code Online (Sandbox Code Playgroud)
CSS:
#parent { height:500px; width:500px; position:absolute; }
#container { height: 100%; width:100%; }
#element-in-question { height:100%; width:100%; overflow: auto; }
#footer-cell { height:30px;}
#footer { height: 30px; }
Run Code Online (Sandbox Code Playgroud)
在真正的应用程序中,所有这些东西都在iframe中运行,表用于呈现页眉和页脚等等.请不要建议停止使用表格,它是100多个需要注意的地方的遗留应用程序.CSS唯一的解决方案将是理想的.
还有一点:它应该适用于Chrome,IE10标准模式.不支持FF,Opera和Safari,IE9及以下版本的处理方式不同.
更新:大约有十个不同高度的页脚,理想情况下解决方案不应该依赖于固定的页脚高度.
我有以下代码:
def render(self, notification):
"""
@type notification: Notification
"""
return NotificationRepresentation(notification).to_dict()
# some irrelevant code
Run Code Online (Sandbox Code Playgroud)
notification是一个Notification类实例.Notificationclass不在这里导入,PyCharm不能使用那种类型hinting(inferred type: unknown).
我尝试过使用全班名,但是没用.显而易见的方法是导入类,但它从未使用过,因此它将是一个冗余导入(PyCharm将在提交之前优化导入时删除它).不太明显的方法是做一些奇怪的事情Celery.task:
STATICA_HACK = True
globals()['kcah_acitats'[::-1].upper()] = False
if STATICA_HACK:
# This is never executed, but tricks static analyzers (PyDev, PyCharm,
# pylint, etc.) into knowing the types of these symbols, and what
# they contain.
from celery.canvas import group, chord, subtask
from .base import BaseTask, Task, PeriodicTask, task, periodic_task
from .sets import TaskSet …Run Code Online (Sandbox Code Playgroud) 我有一个Joomla 1.6安装,可以在两个数据库上运行:joomla的数据库和特定于域的数据库,两者都在同一个MySQL服务器上.特定于域的数据库中的某些实体保留其所有权链接,即存储创建它的Joomla用户的user_id.有些链接不一致,并指向不存在的Joomla用户,从域模型的角度来看是正常的.问题是当我尝试获取它显示的用户名时
JUser::_load:Unable to load user with id 1
Run Code Online (Sandbox Code Playgroud)
由于可以有这样的链接,我需要压制这些消息.检索用户名的确切代码如下:
$user_id = $ticket->getUserId();
$user =& JFactory::getUser($user_id);
Run Code Online (Sandbox Code Playgroud)
Wrappig这段代码ob_start() ... ob_end_clean()并没有帮助.当然,我可以通过黑客攻击Joomla的内部来做到这一点,但有没有更清洁的解决方案?我是Joomla的新手,所以也许管理员面板中有一些选项来压制这些消息?
更新:设置display_errors => off,html_errors => off,display_startup_errors => off noes没有帮助.使用@的PHP错误抑制$user =@ JFactory::getUser($user_id)也没有用.
执行数据库查询时出现以下错误:
Error Number: 1062
Duplicate entry '1' for key 1
INSERT INTO `message_template` (`id`, `name`, `subject`, `detail`, `type`,
`status`, `create_date`)
VALUES (1, 'adaa', '', 'dss', 'SMS', 'Active', '2011-08-25 19:34:08')
Filename: C:\AppServ\www\ci\system\database\DB_driver.php
Line Number: 330
Run Code Online (Sandbox Code Playgroud)
如何获取错误号码(例如1062)到handlle错误?
谢谢
我有一些List<long>长期的myIds.我正在使用id填充集合.但是,我想要删除的集合中有一些重复项.
我试过distinct()在集合上使用但没有效果.重新排序和distinct()再次申请也没有帮助.
在不编写自定义逻辑的情况下删除这些重复项的最佳方法是什么?
我试过这个:
mydIds.OrderBy(x => x).Distinct().ToList();
Run Code Online (Sandbox Code Playgroud) 我面临以下面试问题.
考虑这个函数声明:
Run Code Online (Sandbox Code Playgroud)void quiz(int i) { if (i > 1) { quiz(i / 2); quiz(i / 2); } writeOutput("*"); }函数调用打印了多少个星号
quiz(5)?
我的回答是:
具有整数除法结果类型的语言(Javascript,PHP等)是float - 七个星号.函数测验被调用:
- i = 5 - 一次,星号印刷.
- i = 2.5 - 两次,打印星号.
- i = 1.25 - 四次,打印星号.
- i = 0.625 - 八次,没有打印星号
分割结果类型名称为整数的语言(C/C++,C#,Java等) - 三个星号.函数测验被调用:
- i = 5 - 一次,星号印刷.
- i = 2 - 两次,打印星号.
- i = 1 - 四次,星号未打印.
问题语法类似于C/C++,Java,所以答案是三个
采访是a closed book exam- 在采访中我无法运行此代码并进行检查.面试官告诉我,我的回答并不完全正确(或者至少,他们没想到会这样).Hovewer,我在家里运行了这段代码(使用PHP,Javascript和C#),结果就像我描述的那样.
那么,是否有一些我不知道的警告或者我的答案比他们期望的更详细?
我有一个实现多个接口的类
public class AwesomeThingClass: IAwesome<Thing>, IAwesomeThing {
// parameterized constructor, so can't use RegisterAutowiredAs
public AwesomeThingClass(IClient client, string connectionString) {}
}
Run Code Online (Sandbox Code Playgroud)
它通过使用信号量封装了基数有限的多线程操作(我的意思是,只允许 N 个这样的操作同时运行)。
但是,如果我使用类似的东西向 IoC 注册它
container.Register<IAwesome<Thing>>(cont => new AwesomeThingClass(cont.Resolve<IClient>(), connStr))
container.Register<IAwesomeThing>(cont => new AwesomeThingClass(cont.Resolve<IClient>(), connStr))
Run Code Online (Sandbox Code Playgroud)
我最终得到了两个可以使用IAwesome<Thing>and解决的实例IAwesomeThing,它允许运行 2*N 操作。我绝对需要为两个接口解析相同的实例。除了手动实例化类和注册实例之外,还有什么方法可以实现这一点吗?
这个问题本质上类似于Register the same type to multiple links,但它并不是重复的,因为我正在使用 ServiceStack IoC 容器(Func在撰写本文时),而该问题是关于Unity
如何在不覆盖已生成的类的情况下向Database表中添加列?(学说)我需要编辑哪些文件?
如果我只是在数据库中添加列,我就不能使用Doctrine ORM的set和get函数.
c# ×3
php ×2
servicestack ×2
asp.net-mvc ×1
autofac ×1
codeigniter ×1
collections ×1
css ×1
doctrine ×1
doctrine-1.2 ×1
html ×1
joomla ×1
joomla1.6 ×1
lambda ×1
overflow ×1
pseudocode ×1
pycharm ×1
python ×1
sql ×1
symfony-1.4 ×1
symfony1 ×1
type-hinting ×1
webforms ×1