我们有一个基于C#的Web服务,它接收来自具有法律约束力的文档的政治组织的文档.
目前,我们向文件管理器提供收据,其中包含收到的文件的校验和,因此我们可以在稍后的时间向文件管理器证明存储在我们系统中的文件与其原始提交的文件匹配.收据将作为电子邮件发送给文件管理器.
但是,我们无法向第三方审核员证明存储在我们系统中的文件和校验和从未改变(即恶意DBA可能会更改校验和值以匹配某些虚假替换文档的内容).
我目前正在考虑在某个地方托管的只写"日志文件"(可能是第三方审核员认为合理值得信赖的提供商,如AWS)我们可以记录每个文件ID和校验和当他们发生.理想情况下,这个远程日志文件的行为就像一个老式的会计日志 - 你只能用笔写,所以你永远不能删除以前的条目!
另一种选择可能是将这些电子邮件收据发送给第三方电子邮件存档提供商?(我们的消息历史记录量非常小,这可能不值得与存档提供程序进行对话)
有没有人有建议?
使用NHibernate 3.3.1.400,我在使用NHibernate的Linq提供程序表达什么是简单的SQL语句时遇到了问题.
我的域模型如下所示:
public class Site
{
public virtual Guid Id {get; set;}
public virtual string Name {get; set;}
}
// a site has many filers
public class Filer
{
public virtual Guid Id {get set;}
public virtual Site Site {get; set;}
public virtual string Name {get; set;}
}
// a filer has many filings
public class Filing
{
public virtual Guid Id {get set;}
public virtual Filer Filer {get; set;}
public virtual DateTime FilingDate {get; set;}
}
//a filing …
Run Code Online (Sandbox Code Playgroud) 在阅读了MassTransit中的pub/sub项目示例后,它让我摸不着头脑.
在该示例中,客户端应用程序发布订阅者应用程序的请求以更新虚构用户的密码.此示例代码工作正常,并且很容易遵循此项目的弹跳球.
然而 -
在现实世界的环境中,pub/sub(据我所知)的目的是让少数发布者与大量订阅者进行交互.在订户执行任何类型的CRUD操作的情况下,通信模式是否应该阻止多个订户处理该消息?例如,让20个订户尝试更新相同的数据库记录是不太理想的.
这只是一个被误导的样本项目吗?
如果pub/sub可用于CRUD操作,那么如何配置框架以仅允许一个订户执行操作?
我是否完全错过了关于pub/sub目的的一些基本信息?
感谢您提供的任何澄清......
大卫
我有一个Knockout attr绑定工作得非常好:
<a data-bind="attr: { href: 'Action?destination=' + '@Model.Property' + '&entityId=' + Id }">Select</a>
Run Code Online (Sandbox Code Playgroud)
但是,一旦将任何模型属性插入到href字符串中,Visual Studio中的语法突出显示就会抛出"未终止字符串常量"错误.
我试过'@()'和'@:',但似乎没有什么能让编辑高兴.
我正在尝试找到有关如何为VS2008或VS2010创建自定义编辑器插件的文档.
我想编辑的文件语法来自Stefan Sarstedt的名为TemplateMaschine的工具.
模板语法的示例:
<%@ Assembly Name="System.Xml" %>
<%@ Import NameSpace="System.Xml" %>
<%@ Import NameSpace="System.Collections" %>
<%@ Argument Name="className" Type="string" %>
<%@ Argument Name="attributes" Type="ArrayList" %>
public class <%=className%>
{
<% foreach(string attr in attributes) { %>
public string <%=attr%>;
<% } %>
}
Run Code Online (Sandbox Code Playgroud)
对我来说最重要的编辑器功能是实时语法检查和代码完成.如果我们能够获得这些功能,它将为我们节省数千个工时.
如果没有将自定义编辑器合并到Studio中,可能有一些开源文本编辑器项目可能很容易扩展到我的目的?我看了一下Eclipse,但我认为代码完成不会是一个选项(同样,我的Java很糟糕).另一种可能是扩展SharpDevelop文本编辑器组件.
欢迎提出意见和建议!
我认为在实现LinqToHql生成器类时我缺少一些基本的东西.
我已contains
使用此注册使用自定义方言成功注册了SQL Server 2008 查询:
RegisterFunction("contains", new StandardSQLFunction("contains", null));
Run Code Online (Sandbox Code Playgroud)
我只有一个类要查询全文索引:
public class SearchName
{
public virtual Guid Id {get; set;}
public virtual string Name {get; set;} // this is the search field
}
Run Code Online (Sandbox Code Playgroud)
contains函数在HQL中正常工作:
var names = Session.CreateQuery("from SearchName where contains(Name,:keywords)")
.SetString("keywords", "john")
.List();
Run Code Online (Sandbox Code Playgroud)
并且生成的SQL是完美的:
select searchname0_.Id as Id4_,
searchname0_.Name as Name4_
from Search_Name searchname0_
where contains(searchname0_.Name, 'john' /* @p0 */)
Run Code Online (Sandbox Code Playgroud)
下一个挑战是实现Linq到HQL生成器:
public class MyLinqtoHqlGeneratorsRegistry :
DefaultLinqToHqlGeneratorsRegistry
{
public MyLinqtoHqlGeneratorsRegistry()
{
this.Merge(new ContainsGenerator());
}
}
public class ContainsGenerator …
Run Code Online (Sandbox Code Playgroud) 在ServiceStack应用程序中,我将Funq配置为按请求注入会话,如下所示:
container.Register<NHibernate.ISessionFactory>(sessionFactoryForDB1);
container.Register<NHibernate.ISession>(c => c.Resolve<NHibernate.ISessionFactory>()
.OpenSession())
.ReusedWithin(Funq.ReuseScope.Request);
Run Code Online (Sandbox Code Playgroud)
我的服务看起来像这样,它的工作正常:
public class MyNhAwareService : Service
{
public ISession Session { get; set; }
public object Any(DoSomething request)
{
...
}
}
Run Code Online (Sandbox Code Playgroud)
现在,当我想在其自己的会话工厂中添加第二个NHibernate数据库时,问题就出现了:
container.Register<NHibernate.ISessionFactory>(sessionFactoryForDB1);
container.Register<NHibernate.ISession>(c => c.Resolve<NHibernate.ISessionFactory>()
.OpenSession())
.ReusedWithin(Funq.ReuseScope.Request);
// add a different session factory
container.Register<NHibernate.ISessionFactory>(sessionFactoryForDB2);
Run Code Online (Sandbox Code Playgroud)
我一直在尝试用各种方式Funq可以使用,我想我已经找到了前进的时候,我发现了"RegisterNamed()"方法,但仍然没有帮助,因为我不能用什么除了我的服务中的TryResolve().
这似乎应该是可能的,但是我正在试图解决这个问题.我会非常感激任何建议.
c# ×3
nhibernate ×3
checksum ×1
esb ×1
file ×1
funq ×1
knockout.js ×1
masstransit ×1
razor-2 ×1
servicestack ×1
storage ×1
text-editor ×1