问题列表 - 第42794页

具有PerWebRequest LifeStyle依赖性的单元测试控制器

我正在尝试为一个控制器编写单元测试,该控制器依赖于生活方式为"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)

asp.net-mvc httpcontext mvccontrib-testhelper

3
推荐指数
1
解决办法
899
查看次数

如何将unicode关键字传递给**kwargs

我以下工作是例外.

def foo(**kwargs):
    print kwargs
foo(**{'a':'b'})
foo(**{u'a':'b'})
Run Code Online (Sandbox Code Playgroud)

回溯(最近一次调用最后一次):TypeError中的文件"",第1行:m()关键字必须是字符串

我做错了什么或者我应该修理它吗?

python unicode kwargs

6
推荐指数
2
解决办法
5361
查看次数

如何在C#方法中识别每个参数类型?

我有一个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)

编辑:这是我的代码的一部分,以创建一个属性网格排序页面,我想显示所选方法的数据类型的参数列表.如果参数具有任何用户定义的类型/引用类型,那么我想进一步扩展它以显示其下的所有元素以及数据类型.

c# reflection methods types

6
推荐指数
1
解决办法
1万
查看次数

GAE db.ReferenceProperty自引用

是否可以通过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)

另外,在上面两个例子中,我如何能够添加/删除/修改邻居列表?

谢谢

python google-app-engine google-cloud-datastore

1
推荐指数
1
解决办法
440
查看次数

验证检查在存储库模式中的位置?

假设我有一个名为User的实体,它有许多帖子.我的服务看起来像这样删除帖子:

void DeletePost(int postId, int userId);
Run Code Online (Sandbox Code Playgroud)

我的验证码在哪里?(确保用户有权删除).我应该在1个数据库调用的存储库中执行此操作吗?或者我应该在我进行2次调用的服务层中进行检查:

  1. 通过userId获取用户.
  2. 在对用户进行验证后调用delete.

我将有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)

c# architecture design-patterns repository-pattern

12
推荐指数
2
解决办法
2418
查看次数

动态更改log4j日志级别

有哪些动态更改log4j日志级别的方法,以便我不必重新部署应用程序.在这些情况下,这些变化是永久性的吗?

java logging log4j runtime

120
推荐指数
4
解决办法
15万
查看次数

PHP和钛用于桌面开发

Titanium声称支持PHP,但我无法找到一个示例或教程(他们网站上有关服务的内容对我没有任何意义).如果您了解任何有用的示例,教程或源代码,请在此处发布.

php titanium appcelerator

5
推荐指数
1
解决办法
3293
查看次数

静态类型不能用作参数

我正在关注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)

如果有人能看到我做错了什么,或者如果需要更多信息,我会很感激指针!谢谢.

c# asp.net-mvc html-helper

12
推荐指数
1
解决办法
1万
查看次数

当唯一索引出现时,Oracle 10g和11g之间REF CURSOR的行为不同?

描述

我有一个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)

oracle plsql stored-procedures oracle10g oracle11g

18
推荐指数
1
解决办法
2万
查看次数

Pyparsing:空格作为有效令牌

我正在使用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个字符,每个字符用空格分隔,其中空格也可以是有效字符?

提前致谢.Ĵ

python pyparsing

7
推荐指数
1
解决办法
3063
查看次数