我在WPF应用程序中使用PRISM 5.而在我的应用程序壳牌观点有两个区域,为A和区域应该安放A包含一个弹出考虑它(PRISM 5交互功能是用来显示弹出式).
当我在视图的构造函数中创建弹出视图模型的实例时,应用程序正在工作.
工作代码
public PopupView()
{
InitializeComponent();
this.DataContext = new PopupViewModel(); // Working code
}
Run Code Online (Sandbox Code Playgroud)
但是当我尝试使用依赖注入创建视图模型实例时.应用程序InitializeComponent();在父视图(视图A)上失败 .
DI不工作代码
public PopupView(PopupViewModel viewModel)
{
InitializeComponent(); // Failing in AView initialze
// before reaching here
this.DataContext = viewModel;
}
Run Code Online (Sandbox Code Playgroud)
在module/bootstrapper中查看模型注册
container.RegisterType<AViewModel>();
Run Code Online (Sandbox Code Playgroud)
发生了错误
NULLReference发生异常
Stacktrace(编辑问题)
at System.DefaultBinder.BindToMethod(BindingFlags bindingAttr, MethodBase[] match, Object[]& args, ParameterModifier[] modifiers, CultureInfo cultureInfo, String[] names, Object& state)
at MS.Internal.Xaml.Runtime.DynamicMethodRuntime.CreateInstanceWithCtor(Type type, Object[] args)
at MS.Internal.Xaml.Runtime.ClrObjectRuntime.CreateInstance(XamlType xamlType, Object[] args)
at MS.Internal.Xaml.Runtime.PartialTrustTolerantRuntime.CreateInstance(XamlType xamlType, Object[] args)
at System.Xaml.XamlObjectWriter.Logic_CreateAndAssignToParentStart(ObjectWriterContext ctx)
at …Run Code Online (Sandbox Code Playgroud) 背景和系统视图
我们在分布式环境中实施了计费系统.有4个终端每个终端每分钟产生大约2张票据.我们使用Mysql作为后端和C#,winforms作为我们的客户端技术.
任何计费系统中最重要的约束是发票号必须是连续的.为此,我运行类似的查询
在伪代码中
let x ="SELECT count(*) from Orders where IsInvoiceGenerated=1 and FinancialYear=val
new invoicenum = x + 1;
Run Code Online (Sandbox Code Playgroud)
问题 一切都运行正常,直到411发票,之后系统突然跳过2张发票并生成发票414.我们调查了系统状态,发现系统没有外部篡改,我们还推断没有人从工作台访问数据库.这是一个重大问题,因为它也有法律后果.
能否请您建议确保帐单号始终保持顺序的最佳方法.