我正在使用MVC,Knockout和Knockout Validation来验证我的视图模型.
我遇到了一个问题,即视图模型属性的验证在加载时立即触发.换句话说,在用户尝试更改其值之前,"我需要此字段"显示在我的输入旁边.
下拉(选择)控件特别发生此问题.
我猜这是我通过某种方式无意中更改/访问/改变我的javascript代码的另一部分中的observable而创建的问题.但是,我不知道如何追踪这一点.
有没有办法,我可以以某种方式订阅或跟踪甚至导致Knockout验证中的验证的火灾?我只需要知道为什么它会以它的方式发射.我非常确信isValid()函数的值始终为false.
以下是我在页面加载时设置HTML的方式示例,不受干扰:
<select class="highlightable validationElement" name="obsstate" data-bind="value: standardAnswers.ans106_1.value" required="true">
<option value="">-- Select -- </option>
<option value="AK">AK</option>
<option value="AL">AL</option>
etc...
</select>
Run Code Online (Sandbox Code Playgroud)

我有一个应用程序,其中包含从现有数据库生成的工作实体模型.我必须将我的应用程序指向具有相同模式的新数据库,除了表和列名称不同.
例如,我当前的模式具有名为"Answer"的表.我需要指向的新模式具有完全相同的表,除了它被命名为"tblAnswer".
我的专栏也发生了变化.作为一个曾经被称为"AnswerId"的列,它现在是"zAnswerId".不要问"z"前缀,这是一个很长的故事,但它在每一列都有.
那么,我有哪些选项可以将现有的实体模型(从数据库生成)指向新数据库并调整映射?我一直在试验一些用于"Code First"映射的技术,如本指南所述,但没有任何运气.我根本不知道这是否是正确的方法,或者是否有更有意义的东西.
建议?提前致谢.
更新1-13-10 我已经能够使用下面的代码找到一些成功的映射.我基本上忽略了没有映射的任何属性,然后映射它们.我希望得到关于我是否以最佳方式进行此项讨论的反馈意见.另外,我不知道如何进行单元测试这种映射.我的印象是使用AutoMapper应该有助于减轻检查每个属性的繁琐.
这是我的新代码:
Mapper.CreateMap<MoveEntity, MoveEntityDto>()
.ForMember(dest => dest.PrimaryOriginTransferee, opt => opt.Ignore())
.ForMember(dest => dest.PrimaryDestinationTransferee, opt => opt.Ignore())
.ForMember(dest => dest.Customer, opt => opt.Ignore())
.ForMember(dest => dest.DestinationAddress, opt => opt.Ignore())
.ForMember(dest => dest.OriginAddress, opt => opt.Ignore())
.ForMember(dest => dest.Order, opt => opt.Ignore())
.ForMember(dest => dest.Shipment, opt => opt.Ignore())
.ForMember(dest => dest.SourceSystemName, opt => opt.Ignore());
Mapper.CreateMap<ContactEntity, TransfereeEntityDto>();
Mapper.CreateMap<CustomerEntity, CustomerEntityDto>();
Mapper.CreateMap<AddressEntity, AddressEntityDto>();
Mapper.CreateMap<OrderEntity, OrderEntityDto>()
.ForMember(dest => dest.OrderForwarding, opt => opt.Ignore())
.ForMember(dest => dest.Forwarder, opt => opt.Ignore());
Mapper.CreateMap<ShipmentEntity, ShipmentEntityDto>()
.ForMember(dest => dest.Services, opt => …Run Code Online (Sandbox Code Playgroud) 我们在组织中管理WCF日志的文件大小时遇到了一些麻烦.日志越来越大,非常大.多千兆字节的数据.
我是一个WCF新手,但我意识到有一些选项可以降低记录的信息水平.但是,我更喜欢的是为日志设置某种自动存档过程,以便在特定频率(可能每晚)将日志自动存档到单独的文件夹中最多5天.这样,当我们发现我们的某项服务存在问题时,我们可以在早上获得新鲜且可管理的日志大小.
我真的不知道最好的办法是什么.是否有.NET类可以访问SVC日志文件?或者,我是否需要编写专门关闭服务的服务,重命名并移动文件系统上的日志,然后重新打开服务?
任何帮助表示赞赏!
问题:如何在现有 Autofac 生命周期范围内使用 Autofac Factory 委托创建新实例?
\n\n根据 Autofac 文档,
\n\n\n\n\n如果您将一个对象注册为 InstancePerDependency() 并多次调用\n 委托工厂,\xe2\x80\x99 每次都会获得一个新实例。
\n
当将工厂注入到现有生命周期范围内的类的构造函数中时,情况并非如此
\n\n一些额外的背景:我正在尝试使用Autofac Delegate Factories以便每次创建 ValueObject 类的新实例。
\n\n这个 ValueObject 类的构造函数和委托工厂如下所示:
\n\npublic SlaInMinutes(int slaInMinutes, ISlaCalculator slaCalculator, ITicketUnitOfWork ticketUnitOfWork)\npublic delegate SlaInMinutes Factory(int slaInMinutes);\nRun Code Online (Sandbox Code Playgroud)\n\nAutofac 注册如下所示:
\n\nbuilder.RegisterType<SlaInMinutes>().InstancePerLifetimeScope();\nRun Code Online (Sandbox Code Playgroud)\n\n当我将 Factory 委托注入SlaInMinutes.Factory slaFactory现有 LifetimeScope 内的类构造函数 ( ) 时,我可以使用 Factory 参数实例化一个新类,并且 Autofac 会处理剩余的构造函数依赖项。这很棒。
除了我实例化一次后每次都是同一个实例。每次我根据 Factory 参数 int slaInMinutes 调用此 Factory 委托时,都需要有一个新实例。
\n\n ….net ×2
autofac ×1
automapper ×1
c# ×1
knockout.js ×1
logging ×1
mvp ×1
validation ×1
wcf ×1
web-services ×1