我有一个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) 根据我的问题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) (免责声明: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) 我有一个项目,我为它创建了一个强名称密钥文件.
我怎么知道我的集会的强名是什么?看来这应该是显而易见的,但我找不到任何参考.
c# strongname .net-assembly visual-studio visual-studio-2012
注意这里的关键字是"默认".我知道我可以点击转义,默认行为会中止.每次IDE认为它知道我想要什么时,我都不想点击转义键.我没必要在2013年这样做.
附录2看来我仍然难以沟通我在这之后所做的事情.当我按下空格键时,我想要发生的事情就是什么 ......我只想在屏幕上显示一个空格字符.我希望IDE实际插入建议的唯一一次是当我点击标签栏时.我希望更清楚?
这让我疯了.2013年之前允许你设置完成字符(也许是resharper?)但是在2015年我看不到停止自动完成的默认行为.
例如,假设我有一个类Foo,但我没有指定名称空间,但我有一个类FooBar指定名称空间,但是如果我键入,我在其中一个指定的名称空间中:
public void DoSomething(Foo// <-- then a space)
Run Code Online (Sandbox Code Playgroud)
......它会自动放入 FooBar.我该如何关闭这种行为?
我应该提一下,我仍然想要自动完成,只是在选项卡上.
我在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.
关于该做什么的一些建议将不胜感激.
我正在金融系统中进行相当复杂的NHibernate交易,创建付款,记录分类帐条目,检查付款是否是发票的总金额,如果是,则将发票标记为全额付款等.很多有趣的东西.当然,它必须在单个交易中发生.
当我尝试将更改提交到会话时,我收到以下错误:
Error dehydrating property value for C3.DataModel.CFAPTransaction.Vendor
Run Code Online (Sandbox Code Playgroud)
谷歌搜索这并没有出现很多记录.有人能告诉我这意味着什么以及我需要在哪里集中调试工作?
UPDATE
每个请求,这是完整的错误消息:
Run Code Online (Sandbox Code Playgroud)NHibernate.PropertyValueException: Error dehydrating property v alue for C3.DataModel.CFAPTransaction.Vendor --->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 …
嗨,我有一个像下面的剑道网格,我想检查列的空值,并根据条件我想显示一些默认的数字到列
这是我的示例代码.
$("#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)
但我没有得到如何完成它.有解决方案吗
我有一个使用Castle Windsor的MVC4站点,我想添加一些WebAPI调用,所以我开始在互联网上挖掘一下.
现在我不知道IoC的来龙去脉; 我按照教程了解了如何在我的项目中设置Castle Windsor,在基本控制器中注入IUnitOfWorkFactory和IApplicationService作为公共属性,以及控制器构造函数中需要的一些其他接口.它游泳,所以我从来没有做过更多.
到处说我上的WebAPI读书了,有人告诉我DI不会工作,以及使用温莎城堡,谈论与存在的问题IDependencyResolver和IDependencyScope.有几种解决方法和实现如何解决这个问题,但我不清楚的是究竟是什么问题.代码片段都包括在内,但前提是你知道他们属于哪个阶层,他们是如何被调用,不幸的是我不知道.另外,我在网上看到的所有例子都提到了一个独家的WebAPI项目,而不是一个ApiController明智地被抛出的MVC4项目.我不知道这是怎样的,或者是否会影响到任何东西.
为什么我的标准控制器无法使用API控制器?为了让WebAPI调用和标准Web调用在同一个应用程序中工作,需要做什么样的代码杂技?
我习惯使用.click()和delegate('click'),所以当我读到两个都在最近的jQuery版本中被弃用时,我以为我已经阅读了它,但我有点不知所措.
这里的文档似乎表明这是.live()和.delegate()的替代品,但.click ()和.bind()有不同的行为,即绑定到当前存在的对象,其他的绑定到任何与DOM的生命周期相匹配的选择器模式的对象.
在大多数情况下,这不会产生很大的不同,但是当动态地向DOM添加元素时,这是一个重要的区别.与旧模式匹配的新对象不会将侦听器与click事件绑定.click(),但会使用.delegate().
我的问题是,如何使用该.on()方法复制预先存在的.delegate()和.bind()?的行为?或者未来的一切都会走向.delegate()风格?
c# ×7
asp.net-mvc ×2
ide ×1
jquery ×1
kendo-grid ×1
kendo-ui ×1
mocking ×1
moq ×1
nhibernate ×1
options ×1
plpgsql ×1
postgresql ×1
settings ×1
strongname ×1
templates ×1
unit-testing ×1