小编260*_*986的帖子

使用约束执行区域

CERs在哪些情况下有用?我的意思是,现实生活中的情况,而不是一些抽象的例子.

你个人使用它们吗?除了书籍和文章中的例子之外,还没有看到它们的用法.当然,这可能是因为我的编程经验不足.所以我也对它的广泛传播技术感兴趣.

使用它们有什么利弊?

.net c# exception-handling

15
推荐指数
1
解决办法
1397
查看次数

SerialPort问题

我正在使用SerialPort与条形码阅读器进行通信(只读).

我已经安装了驱动程序来操作阅读器,就好像它是通过Com-port连接的,虽然它是一个usb设备.插入设备后,列表中会再出现一个Com-port.

问题如下.我初始化SerialPort对象以从条形码阅读器读取,但如果读取器被拔掉,我无法正确完成或处置SerialPort对象,因为它"附加"的端口不再存在.

程序关闭时,结果是WinIOException.我不仅在使用SerialPort的代码中捕获它,而且在program.cs级别也是如此.根据堆栈,在尝试完成和处理SerialPort对象后抛出WinIOException.

我有什么想法可以正确操作这种情况吗?或者至少要抓住异常?

我确切知道的是问题不在于这个特定的驱动程序; 我还有一个来自其他制造商的条形码阅读器(具有相同目的的驱动程序) - 情况是一样的.

c# usb serial-port

8
推荐指数
2
解决办法
1万
查看次数

WPF容器:元素的宽度相等,但它们之间有间距

我想要一个只有四个按钮的容器.按钮应水平对齐,宽度相同,不填充所有可用空间,并且它们之间的空间相等.

我不想为按钮设置保证金.是否有任何容器和/或其属性的组合,这将有助于我实现这一目标?

我已经尝试过使用StackPanel,UniformGrid,简单网格,但没有成功 - 要么我得到巨大的按钮(虽然宽度相等),或者我最终得到按钮之间的间距,但它们有不同的宽度.

c# wpf xaml

7
推荐指数
2
解决办法
9442
查看次数

app.config中的设置何时实际读取?

app.config的设置何时实际由应用程序读取?

假设我有一个Windows服务和一些应用程序设置.在代码中我有一个方法,其中使用了一些设置.在每次迭代中都会调用方法,而不是在所有时间内调用一次.如果我通过配置文件更改设置值,我应该重新启动服务以使其在内部"刷新",还是在下次没有任何交互的情况下接受它?

.net c# configuration app-config

7
推荐指数
1
解决办法
6427
查看次数

在Winforms-MVP和WPF-MVVM中通知最终用户异常

在半年的Winforms-MVP中,我设计了以下异常处理策略.我有一个基本的抽象Presenter类,其中有几个Execute方法将一个委托作为输入参数(签名各不相同).View和Presenter之间的交互是通过IView中定义的事件(输入)完成的,并通过设置公共属性(输出)或调用IView中定义的方法并由View实现.演示者中的每个事件处理程序都会调用其中一个Execute方法,为其提供具体的实现.

在execute方法中,我有几个catch块,用于可能发生的非常明确的异常(主要是因为广泛使用的外部组件中的一些问题).这些异常中的每一个都会停止执行当前操作,通过调用View的方法记录并向用户显示有意义的解释.

不久前(事实上很久以前)我开始学习WPF-MVVM,乍一看似乎与MVP有很多共同之处.我正在寻找关于那里的异常处理策略的一些方便的建议(主要告知用户有关问题),但这个问题一般难以搜索 - 我的意思是说,但主要是原则上.我已经在app.xaml.cs中找到了20多个"处理"未处理异常的例子,这一切都非常好,但请真诚地告诉我 - 如果你知道可能导致应用程序崩溃的确切异常,你不会处理它们吗?稍早一点(即使你将被迫关闭你的应用程序)?我不喜欢抓住所有可能的异常.应该在不关闭应用程序的情况下处理由网络问题,临时数据库不可用等引起的大量异常,而不会出现可怕的错误图标,从而使普通用户有机会重复他的请求.

因此,作为一个实验,我尝试了几乎与之前描述的相同的事情 - 我在ViewModel中创建了事件,用于异常转换和订阅View.但是,坦率地说,这种方式让我感到毛骨悚然.

(这是一个非常长的演讲,我知道)问题:在使用MVVM时,如何处理有关通知用户的异常?不,我现在对数据验证不感兴趣.任何关于MVP的批评和/或建议也是受欢迎的.

c# wpf mvp mvvm winforms

6
推荐指数
1
解决办法
903
查看次数

主窗体未显示在任务栏中

主要申请表不能在TaskBar中显示的原因是什么?

ShowInTaskbar属性设置为"true",但是如果在运行应用程序之后并且在Main表单出现之前,表单不会显示在那里我切换到其他窗口.表单存在,但在我最小化上面的应用程序以使其可见之前,它将不会显示在任务栏中.

UPDATE.表格没有所有者.

taskbar winforms c#-2.0

5
推荐指数
1
解决办法
2714
查看次数

使用命名参数

对不起,如果重复.

我正在通过C#阅读CLR."参数"一章从可选参数和命名参数的说明开始.

那么,你能举出一些例子,说明使用命名参数有什么好处,还是风格或习惯问题?你个人使用命名参数吗?

c#-4.0

4
推荐指数
2
解决办法
1409
查看次数

返回null或空集合会更好吗?

假设我有一个返回数组或列表或其他集合的方法.如果内部出现问题或者根本没有数据要返回,那么更好的是返回null或返回长度(计数)等于0的数组(列表等)?

事实上它很重要,还是仅仅是开发人员的偏好?

c# collections methods

4
推荐指数
2
解决办法
1028
查看次数

JsonSerializationException

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)

c# json.net json-deserialization

1
推荐指数
1
解决办法
2746
查看次数

在WIX项目中包含修改后的FilesInUse对话框

我有一个修改过的FilesInUse对话框.只是将它包含在项目中并在UI中更改引用也没有用 - 我在构建安装项目时得到"ICE20:标准对话框:'对话表中找不到'FilesInUse'"错误.

浏览网络我发现了一条建议 - 为ICE20压制ICE验证.好吧,使用这样的设置构建项目工作正常,msi也可以正常工作,但我不确定这是一个很好的解决方案.

另一个建议是修改FilesInUse并从引用中删除WixUIExtension,但据我所知这样,我最终会将所有需要的对话框文件复制到我的项目中.这是我想避免的.

那么,可以做些什么来正确地在WIX项目中包含我的自定义FilesInUse?

wix wix-extension wix3.5

0
推荐指数
1
解决办法
4779
查看次数