我正在尝试为一个控制器编写单元测试,该控制器依赖于生活方式为"PerWebRequest"的类型.
Castle抛出以下异常:
System.InvalidOperationException:HttpContext.Current为null.PerWebRequestLifestyle只能在ASP.Net中使用.
我可以以某种方式模拟HttpContext.Current属性来解决这个问题吗?
我试图使用MVCContrib的TestControllerBuilder来初始化这个控制器,但它没有任何效果.
SymptomTopicController controller = new SymptomTopicController();
controller.WorkOrderFulfillment = workOrderFulfillment;
TestControllerBuilder controllerBuilder = new TestControllerBuilder();
controllerBuilder.InitializeController(controller);
Run Code Online (Sandbox Code Playgroud) 我以下工作是例外.
def foo(**kwargs):
print kwargs
foo(**{'a':'b'})
foo(**{u'a':'b'})
Run Code Online (Sandbox Code Playgroud)
回溯(最近一次调用最后一次):TypeError中的文件"",第1行:m()关键字必须是字符串
我做错了什么或者我应该修理它吗?
我有一个C#方法说:
MyMethod(int num, string name, Color color, MyComplexType complex)
Run Code Online (Sandbox Code Playgroud)
使用反射,我如何清楚地识别任何方法的每个参数类型?我想通过参数类型执行一些任务.如果类型是简单的int,string或boolean然后我做一些事情,如果它是Color,XMLDocument等我做其他事情,如果它是用户定义的类型,如MyComplexType或MyCalci等,那么我想做某些任务.
我能够使用ParameterInfo检索方法的所有参数,并且可以遍历每个参数并获取它们的类型.但是如何识别每种数据类型?
foreach (var parameter in parameters)
{
//identify primitive types??
//identify value types
//identify reference types
}
Run Code Online (Sandbox Code Playgroud)
编辑:这是我的代码的一部分,以创建一个属性网格排序页面,我想显示所选方法的数据类型的参数列表.如果参数具有任何用户定义的类型/引用类型,那么我想进一步扩展它以显示其下的所有元素以及数据类型.
是否可以通过db.ReferenceProperty引用self,是否可以构造一个列表?
例如,我有一个用户类,我想为他/她的朋友提供一个引用User类的属性?
我目前正在使用Python.
编辑:
所以,如果我有这个课:
class Node(db.Model):
name = db.StringProperty(required=True)
neighbour = db.SelfReferenceProperty(collection_name="neighbours")
node1 = Node(name="node1")
node2 = Node(name="node2")
node1.neighbour = node2
node2.neighbour = node1
node1.put()
node2.put()
Run Code Online (Sandbox Code Playgroud)
我可以通过node1.neighbours和访问其他节点的列表node2.neighbours吗?
或者我应该这样做:
class Node(db.Model):
name = db.StringProperty(required=True)
neighbour = db.ListProperty(Node)
node1 = Node(name="node1")
node2 = Node(name="node2")
node1.node = [node2]
node2.neighbour = [node1]
node1.put()
node2.put()
Run Code Online (Sandbox Code Playgroud)
另外,在上面两个例子中,我如何能够添加/删除/修改邻居列表?
谢谢
假设我有一个名为User的实体,它有许多帖子.我的服务看起来像这样删除帖子:
void DeletePost(int postId, int userId);
Run Code Online (Sandbox Code Playgroud)
我的验证码在哪里?(确保用户有权删除).我应该在1个数据库调用的存储库中执行此操作吗?或者我应该在我进行2次调用的服务层中进行检查:
我将有2个存储库,1个用户和1个帖子,每个看起来像这样:
// From the PostRepository.
void Delete(int postId); //May have to add a userId param if I do validation in repository
//From the UserRepository.
User GetUser(int userId);
Run Code Online (Sandbox Code Playgroud) 有哪些动态更改log4j日志级别的方法,以便我不必重新部署应用程序.在这些情况下,这些变化是永久性的吗?
Titanium声称支持PHP,但我无法找到一个示例或教程(他们网站上有关服务的内容对我没有任何意义).如果您了解任何有用的示例,教程或源代码,请在此处发布.
我正在关注MVC音乐商店教程,但我在第5 部分第5部分中遇到了Html Helper .
到目前为止,我似乎已经正确地遵循它(如果我错了请纠正我:))...但是我收到以下错误:
'musicStoreMVC.Helpers.HtmlHelper':静态类型不能用作参数
这是我的应用程序的代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace musicStoreMVC.Helpers
{
public static class HtmlHelper
{
public static string Truncate(this HtmlHelper helper, string input, int length)
{
if (input.Length <= length)
{
return input;
}
else
{
return input.Substring(0, length) + "...";
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
如果有人能看到我做错了什么,或者如果需要更多信息,我会很感激指针!谢谢.
我有一个Oracle存储过程,它已在本地开发实例和运行Oracle 8,然后是9,然后是10和最近11的多个客户端测试和生产实例上运行了大约7年.它一直工作直到升级到Oracle 11g.基本上,该过程打开引用游标,更新表然后完成.在10g中,光标将包含预期的结果,但在11g中,光标将为空.升级到11g后没有更改DML或DDL.这种行为在我尝试过的每10g或11g实例上都是一致的(10.2.0.3,10.2.0.4,11.1.0.7,11.2.0.1 - 所有在Windows上运行).
具体的代码要复杂得多,但要用一些现实的概述来解释这个问题:我在头表中有一些数据,还有一堆子表将输出到PDF.头表有一个布尔值(NUMBER(1),其中0表示false,1表示为真)列表示该数据是否已被处理.
视图仅限于显示尚未处理的行(视图还连接到其他一些表,进行一些内联查询和函数调用等).因此,在打开游标时,视图显示一行或多行,然后在游标打开后运行update语句以翻转头表中的标志,发出提交,然后过程完成.
在10g上,游标打开,它包含行,然后update语句翻转标志并再次运行该过程将不产生任何数据.
在11g上,游标永远不会包含该行,就好像在更新语句运行之后光标才会打开.
我担心可能会影响其他程序和其他应用程序的11g(希望是可配置的设置)中的某些内容可能已发生变化.我想知道的是,是否有人知道为什么两个数据库版本之间的行为不同,以及是否可以在没有代码更改的情况下解决问题.
更新1:我设法将问题跟踪到一个独特的约束.似乎当11g中存在唯一约束时,无论我是否针对实际对象运行真实世界代码或以下简单示例,该问题在100%的时间内都是可再现的.
更新2:我能够从等式中完全消除视图.我已经更新了简单的示例,以便即使在直接查询表时也存在问题.
CREATE TABLE tbl1
(
col1 VARCHAR2(10),
col2 NUMBER(1)
);
INSERT INTO tbl1 (col1, col2) VALUES ('TEST1', 0);
/* View is no longer required to demonstrate the problem
CREATE OR REPLACE VIEW vw1 (col1, col2)
AS
SELECT col1, col2
FROM tbl1
WHERE col2 = 0;
*/
CREATE OR REPLACE PACKAGE pkg1
AS
TYPE refWEB_CURSOR IS REF CURSOR;
PROCEDURE proc1 (crs OUT refWEB_CURSOR);
END …Run Code Online (Sandbox Code Playgroud) 我正在使用pyparser来处理hex-to-text转换器的输出.它每行打印16个字符,用空格分隔.如果十六进制值是ASCII可打印字符,则打印该字符,否则转换器输出句点(.)
大多数输出看起来像这样:
. a . v a l i d . s t r i n g .
. a n o t h e r . s t r i n g .
. e t c . . . . . . . . . . . .
Run Code Online (Sandbox Code Playgroud)
我描述这一行的pyparsing代码是:
dump_line = 16 * Word(printables, exact=1)
Run Code Online (Sandbox Code Playgroud)
这很好,直到十六进制文本转换器达到十六进制值0x20,这导致它输出一个空格.
l i n e . w . a . s p a c e .
Run Code Online (Sandbox Code Playgroud)
在这种情况下,pyparsing忽略输出的空间并从下一行中取出字符以产生16个字符的"配额".
有人可以建议我如何告诉pyparsing期望16个字符,每个字符用空格分隔,其中空格也可以是有效字符?
提前致谢.Ĵ
c# ×3
python ×3
asp.net-mvc ×2
appcelerator ×1
architecture ×1
html-helper ×1
httpcontext ×1
java ×1
kwargs ×1
log4j ×1
logging ×1
methods ×1
oracle ×1
oracle10g ×1
oracle11g ×1
php ×1
plsql ×1
pyparsing ×1
reflection ×1
runtime ×1
titanium ×1
types ×1
unicode ×1