小编Jer*_*acs的帖子

模拟一个抛出异常(moq)的方法,但其他方式就像模拟对象一样?

我有一个Transfer类,简化它看起来像这样:

public class Transfer
{
    public virtual IFileConnection source { get; set; }
    public virtual IFileConnection destination { get; set; }

    public virtual void GetFile(IFileConnection connection, 
        string remoteFilename, string localFilename)
    {
        connection.Get(remoteFilename, localFilename);
    }

    public virtual void PutFile(IFileConnection connection, 
        string localFilename, string remoteFilename)
    {
        connection.Get(remoteFilename, localFilename);
    }

    public virtual void TransferFiles(string sourceName, string destName)
    {
        source = internalConfig.GetFileConnection("source");
        destination = internalConfig.GetFileConnection("destination");
        var tempName = Path.GetTempFileName();
        GetFile(source, sourceName, tempName);
        PutFile(destination, tempName, destName);
    }
}
Run Code Online (Sandbox Code Playgroud)

IFileConnection界面的简化版本如下所示:

public interface IFileConnection …
Run Code Online (Sandbox Code Playgroud)

c# unit-testing moq mocking

54
推荐指数
3
解决办法
8万
查看次数

良好的AES初始化矢量实践

根据我的问题Aes Encryption ...错过了一个重要的部分,我现在已经了解到我在字符串上创建可逆加密的假设有点过时了.我现在有

    public static byte[] EncryptString(string toEncrypt, byte[] encryptionKey)
    {
        var toEncryptBytes = Encoding.UTF8.GetBytes(toEncrypt);
        using (var provider = new AesCryptoServiceProvider())
        {
            provider.Key = encryptionKey;
            provider.Mode = CipherMode.CBC;
            provider.Padding = PaddingMode.PKCS7;
            using (var encryptor = provider.CreateEncryptor(provider.Key, provider.IV))
            {
                using (var ms = new MemoryStream())
                {
                    using (var cs = new CryptoStream(ms, encryptor, CryptoStreamMode.Write))
                    {
                        cs.Write(toEncryptBytes, 0, toEncryptBytes.Length);
                        cs.FlushFinalBlock();
                    }
                    return ms.ToArray();
                }
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

这产生了一致的结果; 但是,如果不知道/设置初始化向量,我将无法解密.我真的不想将三个值传递给这个方法(在IV上),这让我硬编码IV或从密钥中导出它.我想知道这是不是一个好的做法,或者它是否会使加密的值容易受到某种程度的攻击......或者我是否真的过度思考这个并且应该硬编码IV?

更新 根据铱星的建议,我尝试了类似的东西:

    public static byte[] EncryptString(string toEncrypt, byte[] encryptionKey)
    {
        if …
Run Code Online (Sandbox Code Playgroud)

c# aescryptoserviceprovider initialization-vector

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

PostgreSQL:错误:42601:返回"记录"的函数需要列定义列表

(免责声明:PostgreSQL新手.)

好吧,据我所知,我的功能与我见过的样本非常相似.有人能否告诉我如何让这个工作?

create or replace function get_user_by_username(
    username varchar(250),
    online boolean
    ) returns setof record as $$
declare result record;
begin

    if online then 
        update users
        set last_activity = current_timestamp
        where user_name = username;
    end if;

    return query
    select
        user_id,
        user_name,
        last_activity,
        created,
        email,
        approved,
        last_lockout,
        last_login,
        last_password_changed,
        password_question,
        comment
    from
        users
    where
        user_name = username
    limit 1;

    return;
end;
$$ language plpgsql;
Run Code Online (Sandbox Code Playgroud)

postgresql plpgsql

36
推荐指数
2
解决办法
4万
查看次数

我怎么能看到我的集会的强大名称?

我有一个项目,我为它创建了一个强名称密钥文件.

我怎么知道我的集会的强名是什么?看来这应该是显而易见的,但我找不到任何参考.

c# strongname .net-assembly visual-studio visual-studio-2012

27
推荐指数
2
解决办法
3万
查看次数

在Visual Studio 2015中访问空格键时停止默认自动完成行为

注意这里的关键字是"默认".我知道我可以点击转义,默认行为会中止.每次IDE认为它知道我想要什么时,我都不想点击转义键.我没必要在2013年这样做.

附录2看来我仍然难以沟通我在这之后所做的事情.当我按下空格键时,我想要发生的事情就是什么 ......我只想在屏幕上显示一个空格字符.我希望IDE实际插入建议的唯一一次是当我点击标签栏时.我希望更清楚?

这让我疯了.2013年之前允许你设置完成字符(也许是resharper?)但是在2015年我看不到停止自动完成的默认行为.

例如,假设我有一个类Foo,但我没有指定名称空间,但我有一个类FooBar指定名称空间,但是如果我键入,我在其中一个指定的名称空间中:

public void DoSomething(Foo// <-- then a space)
Run Code Online (Sandbox Code Playgroud)

......它会自动放入 FooBar.我该如何关闭这种行为?

我应该提一下,我仍然想要自动完成,只是在选项卡上.

c# ide settings options visual-studio-2015

25
推荐指数
4
解决办法
5984
查看次数

无法加载文件或程序集CrystalDecisions.ReportAppServer.ClientDoc

我在SO上看过类似的问题,但据我所知,没有什么能与我的问题相提并论.

异常消息:

无法加载文件或程序集"CrystalDecisions.ReportAppServer.ClientDoc,Version = 13.0.2000.0,Culture = neutral,PublicKeyToken = 692fbea5521e1304"或其依赖项之一.该系统找不到指定的文件.

该文件在我的GAC中.我正在使用运行VS2010的32位机器(Windows 7)进行开发,一切都是.NET4.目标托管机器是64位Win 2008 R2.我的本地机器有VS2010的CR安装; 托管机器具有VS2010的64位运行时.我正在为此Web应用程序的"任何CPU"模式编译我的所有代码.

我在想它无法在GAC中找到该文件.这是一个IIS应用程序; 是否存在某种权限问题?我认为IIS可以访问GAC.

关于该做什么的一些建议将不胜感激.

c# asp.net-mvc crystal-reports

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

NHibernate:错误脱水属性 - 这到底是什么?

我正在金融系统中进行相当复杂的NHibernate交易,创建付款,记录分类帐条目,检查付款是否是发票的总金额,如果是,则将发票标记为全额付款等.很多有趣的东西.当然,它必须在单个交易中发生.

当我尝试将更改提交到会话时,我收到以下错误:

Error dehydrating property value for C3.DataModel.CFAPTransaction.Vendor
Run Code Online (Sandbox Code Playgroud)

谷歌搜索这并没有出现很多记录.有人能告诉我这意味着什么以及我需要在哪里集中调试工作?

UPDATE

每个请求,这是完整的错误消息:

NHibernate.PropertyValueException: Error dehydrating property v  alue for C3.DataModel.CFAPTransaction.Vendor --->
Run Code Online (Sandbox Code Playgroud)

NHibernate.HibernateException:无法解析属性:NHibernate.Tuple.Entity.EntityMetamodel.GetPropertyIndex(String propertyName)中的NHVendorId NHibernate.Tuple.Entity.AbstractEntityTuplizer.GetPropertyValue(Object entity,String propertyPath)at NHibernate.Persister.Entity.AbstractEntityPersister. GetPropertyValue(对象OBJ,字符串propertyName的,EntityMode entityMode)在NHibernate.Type.EntityType.GetIdentifier(对象值,ISessionImplementor会话)在NHibernate.Type.ManyToOneType.NullSafeSet(IDbCommand的ST,对象的值,的Int32索引,布尔[]可固化,ISessionImplementor会话)at NHibernate.Persister.Entity.AbstractEntityPersister.Dehydrate(Object id,Object [] fields,Object rowId,Boolean [] includeProperty,Boolean [] [] includeColumns,Int32 table,IDbCommand statement,ISessionImplementor session,Int32 index) - - 内部异常堆栈跟踪结束---在NHibernate.Persister.Entity.AbstractEntityPersister.Dehydrate(Object id,Object []字段,Object rowId,Boolea n [] includeProperty,Boolean [] [] includeColumns,Int32表,IDbCommand语句,ISessionImplementor会话,Int32索引)NHibernate.Persister.Entity.AbstractEntityPersister.Insert(Object id,Object [] fields,Boolean [] notNull,Int32 j在NHibernate.Engine的NHibernate.Action.EntityInsertAction.Execute()中的NHibernate.Persister.Entity.AbstractEntityPersister.Insert(Object id,Object [] fields,Object obj,ISessionImplementor session)中的,SqlCommandInfo sql,Object obj,ISessionImplementor session. ActionQueue.Execute在NHibernate.Engine.ActionQueue.ExecuteActions(在NHibernate.Event.Default.AbstractFlushingEventListener.PerformExecutions(IEventSource会议)在NHibernate.Event.Default(IExecutable可执行文件)在NHibernate.Engine.ActionQueue.ExecuteActions(IList的列表)).在NHibernate.Impl.SessionImpl.Flush()的NHibernate.Impl.SessionImpl.Flush()中的DefaultFlushEventListener.OnFlush(FlushEvent事件)位于C:\ projects\C3\C3.Da中的C3.DataModel.Repositories.NHUnitOfWork.Save()的NHibernate.Transaction.AdoTransaction.Commit()taModel.Generated\Generated\NHibernateRepositories.generated.cs:在C:\ projects\C3\C3.WebUI\Areas\Finance\Controllers \中的C3.WebUI.Areas.Finance.Controllers.AccountsPayableController.CreatePayment(CreatePaymentModel模型)中的第2659行AccountsPayableController.cs:第434行

更新将 NHibernate抛入DEBUG模式,我得到了一堆这样的东西:

处理级联NHibernate.Engine.CascadingAction + SaveUpdateCascadingAction for:C3.DataModel.APVendor cascade NHibernate.Engine.CascadingAction …

c# nhibernate

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

如何使用kendo模板检查空值

嗨,我有一个像下面的剑道网格,我想检查列的空值,并根据条件我想显示一些默认的数字到列

这是我的示例代码.

 $("#eCount").kendoGrid({
        dataSource: {
            data: myModel,
            pageSize: 5
},      
 columns: [
            {
                field: "Count",
                title: "Count",
                template: '# if (Count == "null" ) {#1#} else {#Count#}#'
            }]
});
Run Code Online (Sandbox Code Playgroud)

但我没有得到如何完成它.有解决方案吗

templates kendo-ui kendo-grid

21
推荐指数
2
解决办法
3万
查看次数

IoC:Castle Windsor和WebAPI

我有一个使用Castle Windsor的MVC4站点,我想添加一些WebAPI调用,所以我开始在互联网上挖掘一下.

现在我不知道IoC的来龙去脉; 我按照教程了解了如何在我的项目中设置Castle Windsor,在基本控制器中注入IUnitOfWorkFactoryIApplicationService作为公共属性,以及控制器构造函数中需要的一些其他接口.它游泳,所以我从来没有做过更多.

到处说我上的WebAPI读书了,有人告诉我DI不会工作,以及使用温莎城堡,谈论与存在的问题IDependencyResolverIDependencyScope.有几种解决方法和实现如何解决这个问题,但我不清楚的是究竟是什么问题.代码片段都包括在内,但前提是你知道他们属于哪个阶层,他们是如何被调用,不幸的是我不知道.另外,我在网上看到的所有例子都提到了一个独家的WebAPI项目,而不是一个ApiController明智地被抛出的MVC4项目.我不知道这是怎样的,或者是否会影响到任何东西.

为什么我的标准控制器无法使用API​​控制器?为了让WebAPI调用和标准Web调用在同一个应用程序中工作,需要做什么样的代码杂技?

c# asp.net-mvc castle-windsor asp.net-mvc-4 asp.net-web-api

20
推荐指数
3
解决办法
2万
查看次数

jQuery .on('click')vs. .click()和.delegate('click')

我习惯使用.click()delegate('click'),所以当我读到两个都在最近的jQuery版本中被弃用时,我以为我已经阅读了它,但我有点不知所措.

这里的文档似乎表明这是.live().delegate()的替代品,但.click ().bind()有不同的行为,即绑定到当前存在的对象,其他的绑定到任何与DOM的生命周期相匹配的选择器模式的对象.

在大多数情况下,这不会产生很大的不同,但是当动态地向DOM添加元素时,这是一个重要的区别.与旧模式匹配的新对象不会将侦听器与click事件绑定.click(),但使用.delegate().

我的问题是,如何使用该.on()方法复制预先存在的.delegate().bind()?的行为?或者未来的一切都会走向.delegate()风格?

jquery

17
推荐指数
2
解决办法
4万
查看次数