小编joh*_*hnc的帖子

使用解决方案范围定义.NET扩展方法

我现在经常使用一些'帮助'式扩展方法(它们大多非常简单,直观,并且工作好而不是邪恶,所以请不要讨论我是否应该使用它们).它们主要是扩展核心.NET CLR类.

目前,我必须将包含扩展方法的'ExtensionMethods.cs'文件复制到解决方案中的每个新项目中,以便能够在多个项目中使用它们.

是否可以定义扩展以在解决方案中处理多个项目,或将它们包装在"扩展"DLL中,还是仅限于项目范围?

编辑虽然"专用项目"的答案是完全有效的,但我选择了marxidad,因为我更喜欢他给出的方法.感谢所有答案到目前为止,我已经对它们进行了全部修改,因为它们都是很好的答案

.net extension-methods

6
推荐指数
2
解决办法
1331
查看次数

在C#中编写控制台包装器?

我想在C#中编写自己的Command Line包装器,如'Console2'.不幸的是,我还没有找到一个好办法.

有人能给我一个抓住控制台输入和输出并将其导入应用程序的例子吗?

NB我不是要创建一个控制台应用程序,我正在尝试为控制台创建一个包装器 - 一个带有richtextedit的windows窗体应用程序,它像一个控制台,可以像Windows控制台一样处理IO

c# console winapi

6
推荐指数
2
解决办法
2514
查看次数

.NET方法信息的唯一标识属性是什么?

当存储方法信息数据时,从一组.NET程序集的反射读取中,从方法信息实例中使用的最佳逻辑键是什么,将它与不同类型中的类似名称方法分开,或者像名称中的方法一样.相同类型的参数不同?

例如,Type具有AssemblyQualifiedName属性,可以很好地从类似的类型中识别它.

更新:正如Peter Ritchie所建议的,有.NET Reflection MetadataToken属性,这正是我所希望的,但是,根据这里,这个令牌不会在后续编译中保留.

正如Oded建议的那样,答案似乎是一个串联密钥:"包含类型的完全限定名称+其名称和参数"

我很高兴听到任何进一步的建议

.net reflection

6
推荐指数
0
解决办法
581
查看次数

确定关闭正在关闭我的应用程序

是否有可能在.NET中确定我的应用程序是否因为Windows被给予关闭命令而关闭(而不是任何旧的应用程序关闭),以便写出一些临时缓存文件,甚至阻止关闭足够长时间以提示用户输入?

虽然我目前的范围涉及Winform应用程序和Windows服务,但如果可能的话,我有兴趣以通用的方式理解它

.net c# shutdown

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

什么是你很久没找到的最愚蠢的错误?

我正在研究一个错过了项目的项目,由于某些原因,即使应该有例外也没有例外.在内心深处,我发现了这种错误处理:

try {
    m.invoke(parentObject, paramObj);
} catch (IllegalArgumentException e) {
    new CaseLibException(e);
} catch (IllegalAccessException e) {
    new CaseLibException(e);
} catch (InvocationTargetException e) {
    new CaseLibException(e);
}
Run Code Online (Sandbox Code Playgroud)

我的大脑认识到有几个例外被包裹在另一个中,所以这并不是那么糟糕.但我不得不偶然发现这段代码至少3次,看看有什么遗漏......

你找不到的最愚蠢的bug是什么?

language-agnostic debugging

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

摆动屏幕键盘

我正在Windows XP上使用Java的KIOSK系统.并且需要做一个屏幕键盘.我不知道怎么做.所以你们可以帮助我做这件事.任何人都对此有所了解.谢谢

java swing

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

拥有一个无处不在的基础对象是一种反模式吗?

我记得在某处看到过关于此问题的辩论,目前正在考虑删除我正在开发的系统中每个业务对象都继承自的基本对象。它包含一些属性、一些数据库逻辑和一些构造函数逻辑。

这是一种反模式,还是尚无定论?拥有一个可以继承的基础合约会更好吗?这需要在每个对象中完成一定量的样板编码?

编辑:我确实喜欢 dsimcha 并觉得它很好地反映了这个问题,我仍然很高兴听到任何进一步的答案

oop anti-patterns

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

从Inno Setup向GAC添加程序集

直到最近我们使用Inno Setup进行安装,我想继续这样做,除非我们可以在开始菜单中获得卸载选项(感谢Giovanni Galbo),但我们现在需要GAC一些外部库,我怀疑是仅通过.NET安装项目可行(或至少仅支持).

是否可以从另一个安装应用程序调用GAC的库?

.net installation gac inno-setup

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

lisp,赋值函数的差异

我对lisp很新,所以对这可能是一个简单的问题道歉,

虽然我理解DEFVAR和DEFPARAMETER之间的区别(defvar只设置未定义的变量),而LET仅用于本地范围,但是使用SETF而不是之前提到的其他赋值函数是什么?

lisp common-lisp

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

Gorilla Websocket 未收到消息

我正在 Golang 中构建一个与 Gorilla websockets 通信的网关。

我正在 Ubuntu 16.04 上运行它,并且当前使用 .NET 控制台应用程序对其进行测试。

在 Windows 上使用 Wireshark 并在 Ubuntu 上使用 sniffit 已确定消息能够从 Windows 客户端正确发送并由 Ubuntu 盒子接收

然而,在我的代码中,有时在几条成功的消息之后,有时在没有消息之后,我的网关无法读取消息(仍然位于_, msg, errCon := conn.ReadMessage()

输出的示例如下:

2018/03/27 02:38:06 等待消息... 2018/03/27 02:38:07 收到消息:main.AdminRequest{Data:"{\​​"SomeDataHeader\":\"SomeData\"}",请求者:“user”,类型:“JustDoSomethingRequest”,Ukey:“talca”} 2018/03/27 02:38:07 {“SomeDataHeader”:“SomeData”} 2018/03/27 02:38:07 等待消息。 ..

正如我之前所说,它可能会收到一些这样的消息,但是,尽管两端的网络流量仍在继续,但不会再收到更多消息

我对 Golang 相当陌生,并且假设我遗漏了一些东西。

为了简洁起见,我在下面的代码中删除了错误处理等,但这是失败代码的示例。

编辑根据要求,我添加了 Golang 完整代码和下面的 C# 客户端代码(尽管,正如我所说,Wireshark 和 sniffit 已确定数据正在通过网络传输)

package main

import (
    "fmt"
    "net/http"
    "github.com/gorilla/websocket"
    "encoding/json"
    "log"
)

var upgrader = websocket.Upgrader{ ReadBufferSize:  1024, WriteBufferSize: 1024, …
Run Code Online (Sandbox Code Playgroud)

go websocket gorilla

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