CERs在哪些情况下有用?我的意思是,现实生活中的情况,而不是一些抽象的例子.
你个人使用它们吗?除了书籍和文章中的例子之外,还没有看到它们的用法.当然,这可能是因为我的编程经验不足.所以我也对它的广泛传播技术感兴趣.
使用它们有什么利弊?
我正在使用SerialPort与条形码阅读器进行通信(只读).
我已经安装了驱动程序来操作阅读器,就好像它是通过Com-port连接的,虽然它是一个usb设备.插入设备后,列表中会再出现一个Com-port.
问题如下.我初始化SerialPort对象以从条形码阅读器读取,但如果读取器被拔掉,我无法正确完成或处置SerialPort对象,因为它"附加"的端口不再存在.
程序关闭时,结果是WinIOException.我不仅在使用SerialPort的代码中捕获它,而且在program.cs级别也是如此.根据堆栈,在尝试完成和处理SerialPort对象后抛出WinIOException.
我有什么想法可以正确操作这种情况吗?或者至少要抓住异常?
我确切知道的是问题不在于这个特定的驱动程序; 我还有一个来自其他制造商的条形码阅读器(具有相同目的的驱动程序) - 情况是一样的.
我想要一个只有四个按钮的容器.按钮应水平对齐,宽度相同,不填充所有可用空间,并且它们之间的空间相等.
我不想为按钮设置保证金.是否有任何容器和/或其属性的组合,这将有助于我实现这一目标?
我已经尝试过使用StackPanel,UniformGrid,简单网格,但没有成功 - 要么我得到巨大的按钮(虽然宽度相等),或者我最终得到按钮之间的间距,但它们有不同的宽度.
app.config的设置何时实际由应用程序读取?
假设我有一个Windows服务和一些应用程序设置.在代码中我有一个方法,其中使用了一些设置.在每次迭代中都会调用方法,而不是在所有时间内调用一次.如果我通过配置文件更改设置值,我应该重新启动服务以使其在内部"刷新",还是在下次没有任何交互的情况下接受它?
在半年的Winforms-MVP中,我设计了以下异常处理策略.我有一个基本的抽象Presenter类,其中有几个Execute方法将一个委托作为输入参数(签名各不相同).View和Presenter之间的交互是通过IView中定义的事件(输入)完成的,并通过设置公共属性(输出)或调用IView中定义的方法并由View实现.演示者中的每个事件处理程序都会调用其中一个Execute方法,为其提供具体的实现.
在execute方法中,我有几个catch块,用于可能发生的非常明确的异常(主要是因为广泛使用的外部组件中的一些问题).这些异常中的每一个都会停止执行当前操作,通过调用View的方法记录并向用户显示有意义的解释.
不久前(事实上很久以前)我开始学习WPF-MVVM,乍一看似乎与MVP有很多共同之处.我正在寻找关于那里的异常处理策略的一些方便的建议(主要告知用户有关问题),但这个问题一般难以搜索 - 我的意思是说,但主要是原则上.我已经在app.xaml.cs中找到了20多个"处理"未处理异常的例子,这一切都非常好,但请真诚地告诉我 - 如果你知道可能导致应用程序崩溃的确切异常,你不会处理它们吗?稍早一点(即使你将被迫关闭你的应用程序)?我不喜欢抓住所有可能的异常.应该在不关闭应用程序的情况下处理由网络问题,临时数据库不可用等引起的大量异常,而不会出现可怕的错误图标,从而使普通用户有机会重复他的请求.
因此,作为一个实验,我尝试了几乎与之前描述的相同的事情 - 我在ViewModel中创建了事件,用于异常转换和订阅View.但是,坦率地说,这种方式让我感到毛骨悚然.
(这是一个非常长的演讲,我知道)问题:在使用MVVM时,如何处理有关通知用户的异常?不,我现在对数据验证不感兴趣.任何关于MVP的批评和/或建议也是受欢迎的.
主要申请表不能在TaskBar中显示的原因是什么?
ShowInTaskbar属性设置为"true",但是如果在运行应用程序之后并且在Main表单出现之前,表单不会显示在那里我切换到其他窗口.表单存在,但在我最小化上面的应用程序以使其可见之前,它将不会显示在任务栏中.
UPDATE.表格没有所有者.
对不起,如果重复.
我正在通过C#阅读CLR."参数"一章从可选参数和命名参数的说明开始.
那么,你能举出一些例子,说明使用命名参数有什么好处,还是风格或习惯问题?你个人使用命名参数吗?
假设我有一个返回数组或列表或其他集合的方法.如果内部出现问题或者根本没有数据要返回,那么更好的是返回null或返回长度(计数)等于0的数组(列表等)?
事实上它很重要,还是仅仅是开发人员的偏好?
我json
喜欢这个(删除它的一部分因为它不是问题)
{
"obj" : {
"id" : "a18",
"param" : {
"system" : 0,
"member_fill" : "0",
"name" : "MainAnketa",
"multi" : 0
}
}
}
Run Code Online (Sandbox Code Playgroud)
我尝试在Newton.Json的帮助下将其反序列化为以下对象:
public class GetMainAnketaResponse
{
[JsonProperty(PropertyName = "obj")] public Anketa AnketaData;
public class Anketa
{
[JsonProperty(PropertyName = "order")]
public List<string> FieldsOrder;
[JsonProperty(PropertyName = "id")]
public string Id;
[JsonProperty(PropertyName = "param")]
public List<Parameter> Parameters;
public class Parameter
{
[JsonProperty(PropertyName = "system")]
public int System;
[JsonProperty(PropertyName = "member_fill")]
public string MemberFill;
[JsonProperty(PropertyName = "name")] …
Run Code Online (Sandbox Code Playgroud) 我有一个修改过的FilesInUse对话框.只是将它包含在项目中并在UI中更改引用也没有用 - 我在构建安装项目时得到"ICE20:标准对话框:'对话表中找不到'FilesInUse'"错误.
浏览网络我发现了一条建议 - 为ICE20压制ICE验证.好吧,使用这样的设置构建项目工作正常,msi也可以正常工作,但我不确定这是一个很好的解决方案.
另一个建议是修改FilesInUse并从引用中删除WixUIExtension,但据我所知这样,我最终会将所有需要的对话框文件复制到我的项目中.这是我想避免的.
那么,可以做些什么来正确地在WIX项目中包含我的自定义FilesInUse?