C# Ensure Valid Enum Values

I'm writing some code with a simple switch statement based on Enum values. It occurred to me that at some point in future a developer may add a new value, so I included a default method to capture this at runtime and throw an exception. However I realised that I should do this every time I put in logic like this, and that I'd only see such issues at run time rather than compile time.

C#确保有效的枚举值

我正在写一些基于Enum值的简单switch语句的代码。 我想到在将来某个时候开发人员可能会添加一个新值,所以我在运行时包含了一个默认方法来捕获这个值,并抛出一个异常。 然而,我意识到每次放入这样的逻辑时我都应该这样做,并且我只会在运行时看到这些问题,而不是编译时间。 我想知道是否有一些代码可以让编译器告诉开发人员他们需要在更新枚举值的情况下更新某些方法 - 而不仅仅是向枚举本身添加注释? 例如(下面的例

Is it possible to subclass an EventSource in ETW?

I'd like to be able to declare an EventSource which has a minimum of several methods which by default provide regular logging facilities. eg Info() Warn() Error() In addition I'd like to be able to within each service, define a specific event source that inherits from the base class providing the above. At the moment the EventRegister.exe app which creates the manifest complain

是否有可能在ETW中继承EventSource?

我希望能够声明一个EventSource,它至少有几个默认提供常规日志记录功能的方法。 例如 信息() 警告() 错误() 另外我希望能够在每个服务中定义一个从提供上述基类的继承的特定事件源。 此时创建清单的EventRegister.exe应用程序会抱怨事件源必须密封。 我做错了吗? 如果是的话我怎么能达到上述? 请参阅示例代码: public class ETWBase : EventSource { [Event(1, Channel = EventChannel

based authorization in ASP.NET MVC3

I am adding ASP.NET MVC to an existing WebForms application. For the time being, I don't care about authentication/logging in, since this part is handled by existing code (Forms authentication). In the existing WebForms application, we have a fully custom permission-based authorization per page. So each user has a set of rights, listing the pages he is allowed to access. Now I need to d

基于ASP.NET MVC3的授权

我将ASP.NET MVC添加到现有的WebForms应用程序中。 目前,我不关心认证/登录,因为这部分是由现有代码(Forms认证)处理的。 在现有的WebForms应用程序中,我们有一个完全自定义的基于权限的授权页面。 因此,每个用户都有一组权限,列出他可以访问的页面。 现在我需要决定如何使用相同的权限系统来限制对特定MVC控制器和操作的访问。 据我所知,对于ASP.NET MVC有一个标准的AuthorizeAttribute,我可以指定角色。 我还

Deploying Linux using Mono to deploy aspnet web/website application?

I have a C#/ASP.NET 4.0 framework application which works on windows with IIS. But recently I'm tempted to switch to Linux/Mono. It comes up with some questions: Based on goggled i have found the option is using Mono cecil so i downloaded and installed in windows in windows: 1) Mono Migration Analyzer 2) Mono for Windows, Gtk#, and XSP in opensuse : zypper addrepo http://downloa

使用Mono部署Linux以部署aspnet web /网站应用程序?

我有一个C#/ ASP.NET 4.0框架应用程序,它与Windows上的IIS一起工作。 但最近我很想切换到Linux / Mono。 它提出了一些问题: 基于护目镜,我发现选择使用单音塞西尔 所以我下载并安装在Windows中 在Windows中: 1)Mono Migration Analyzer 2)Mono for Windows,Gtk#和XSP 在opensuse中: zypper addrepo http://download.mono-project.com/download-stable/openSUSE_11.4单稳态zypper刷新--repo单稳态zypper

Continous integration with .Net and Mono, Linux and Windows

Consider the following: Code is C#. Code will compile and run on .Net and Mono. Some developers use Windows, and some Linux. Commits should be verified by a CI on both platforms (Windows/Linux) and {checkout, build, NUnit}. When a commit fails a mail should be sent. It is preferable if there is a way for developers to see the current status of both platform builds at all time (such as

与.Net和Mono,Linux和Windows持续集成

考虑以下: 代码是C#。 代码将在.Net和Mono上编译和运行。 一些开发人员使用Windows和一些Linux。 提交应该在两个平台(Windows / Linux)和{checkout,build,NUnit}上由CI验证。 当提交失败时,应发送邮件。 如果开发人员能够随时查看两种平台构建的当前状态(如CCTray),则更好。 这涉及Windows和Linux上的开发人员。 我已经尝试过Linux和Mono上的CruiseControl.net,虽然他们没有官方支持。 尽管我无法使W

How to set .Net 4.0 as the default framework in MonoDevelop (Unity 3D)

I'm using MonoDevelop version 2.8.2 and the default parameters that are available in the .NET 4.0 framework. My first problem was that every time I reloaded MD the .NET runtime would be reset to 3.0, and I would have to change it again. This wasn't too annoying, but I do also want to know why that kept happening and how I might permanently set it. My real issue now is that the .NET Ru

如何将.Net 4.0设置为MonoDevelop(Unity 3D)中的默认框架

我正在使用MonoDevelop 2.8.2版以及.NET 4.0框架中提供的默认参数。 我的第一个问题是,每当我重新加载MD时,.NET运行时将被重置为3.0,并且我将不得不再次更改它。 这不是太烦人,但我也想知道为什么这一直在发生,以及我如何永久设置它。 我现在真正的问题是,在选项下拉菜单下的.NET Runtime (或者其他特别的东西,我不记得了)不再出现​​。 相反,我看到一个禁用的项目选项 。 (我会把我在这里看到的图像放在一个图

Performance of C++ vs Virtual Machine languages in high frequency finance

I thought the C/C++ vs C#/Java performance question was well trodden, meaning that I'd read enough evidence to suggest that the VM languages are not necessarily any slower than the "close-to-silicon" languages. Mostly because the JIT compiler can do optimizations that the statically compiled languages cannot. However, I recently received a CV from a guy who claims that Java-based

C ++与虚拟机语言在高频融资中的表现

我认为C / C ++与C#/ Java性能问题已经被很好地践踏,这意味着我读了足够的证据表明VM语言不一定比“接近硅”语言慢。 主要是因为JIT编译器可以进行静态编译语言无法进行的优化。 不过,我最近收到一位声称基于Java的高频交易总是被C ++殴打的人的简历,并且他曾处于这种情况。 在工作现场进行快速浏览确实表明,HFT申请人需要C ++知识,并且看看Wilmott论坛可以看到所有从业人员在谈论C ++。 有这种情况的原因是什么?

Threading heap and stack

How memory is allocated in case of spawning a new thread, ie how memory heap, memory stack, and threads are related? I know this is fundamental (.net framework concept) but somehow I am not much aware of this concept. It's really hard to answer this question because of the way .Net threads are implemented. There is not necessarily a 1-1 implementation between managed and corresponding nat

线程堆和堆栈

在产生新线程的情况下,如何分配内存,即内存堆,内存堆栈和线程是如何相关的? 我知道这是根本(.net框架概念),但不知何故,我对这个概念并不了解。 由于这种方式很难回答这个问题.Net线程被实现。 托管线程和相应的本地线程之间不一定有1-1实现。 CLR可以自由使用多个本地线程来实现单个托管线程。 因此,分配一个新的托管线程不一定会导致生成本地线程。 它可以简单地假定现有的。 你能告诉我们为什么这是你的关心

.NET Standard vs .NET Core

I have read about the difference between .NET Standard and .NET Core, but I really don't know what the difference is, or when to choose a .NET Standard library project and when to choose a .NET Core library project. I have read that .NET Standard is to ensure that a set of APIs are always available, no matter the platform used (as long as that platform is compatible with the .NET Standard v

.NET标准与.NET核心

我已阅读了.NET Standard和.NET Core之间的区别,但我真的不知道区别是什么,或者何时选择.NET标准库项目以及何时选择.NET Core库项目。 我已经读过.NET标准是为了确保一组API始终可用,无论使用哪个平台(只要该平台与我选择的.NET标准版本兼容)。 如果我没有弄错,这意味着我可以创建一个.NET标准的类库,然后在任何与我选择的.NET标准版兼容的平台上使用它。 对于.NET Core,我已经读过它也适用于跨平台的使用,所以如

What Features are missing from Rx that are in CEP Platforms?

在CEP平台(如NEsper或MS StreamInsight)中,Rx缺少哪些功能? CEP Platforms like StreamInsight are an enterprise-grade solution for processing lots of events at high volume and applying pattern-matching algorithms to said events. There are a lot of domain-specific things applied to events in CEP Platforms, such as event classification (point event, interval event, edge event) that aren't firs

CEP平台中的Rx缺少哪些功能?

在CEP平台(如NEsper或MS StreamInsight)中,Rx缺少哪些功能? 像StreamInsight这样的CEP平台是一个企业级解决方案,用于处理大量大量事件,并将模式匹配算法应用于所述事件。 CEP平台中的事件有很多特定于域的事件,例如事件分类(点事件,间隔事件,边缘事件),这些事件在Rx中不是一流的。 简而言之,您似乎可以使用Rx构建一个CEP平台,但它本身并不适合作为CEP平台。 我会画的类比是Rx是CEP,因为WCF是nServiceBus。