小编Iga*_*nik的帖子

解决扩展方法/ LINQ歧义

我正在为ReSharper 4 编写一个加载项.为此,我需要引用几个ReSharper的程序集.其中一个程序集(JetBrains.Platform.ReSharper.Util.dll)包含一个System.Linq名称空间,其中包含已由System.Core提供的扩展方法的子集.

当我编辑代码时,它会在这些扩展之间产生歧义,因此我不能使用它OrderBy.我该怎么解决这个问题?我想使用核心LINQ扩展,而不是ReSharper的扩展.

尝试编译时出现以下错误:

以下方法或属性之间的调用不明确:' System.Linq.Enumerable.OrderBy<string,int>(System.Collections.Generic.IEnumerable<string>, System.Func<string,int>)' and 'System.Linq.Enumerable.OrderBy<string,int>(System.Collections.Generic.IEnumerable<string>, System.Func<string,int>)'

编辑:我尝试了下面的建议,遗憾的是没有运气.同时,我通过删除引用来"解决"问题System.Core.这样我就可以使用ReSharper DLL文件提供的扩展.

上传了一个示例程序,我刚刚导入了我需要的ReSharper DLL文件.我改变了别名System.CoreSystemCore,增加了extern alias指令,但它仍然没有奏效.如果我错过了什么,请告诉我.PS参考是安装在默认directroy中的ReSharper v4.1 DLL文件"C:\Program Files\JetBrains\ReSharper\v4.1\...".

.net c# linq extension-methods visual-studio-2008

28
推荐指数
3
解决办法
6万
查看次数

使用Json.NET将JSON反序列化为对象

我正在使用新的StackOverflow API.不幸的是,我的JSON有点弱,所以我需要一些帮助.

我正在尝试反序列化用户的这个JSON:

  {"user":{
    "user_id": 1,
    "user_type": "moderator",
    "creation_date": 1217514151,
    "display_name": "Jeff Atwood",
    ...
    "accept_rate": 100
  }}
Run Code Online (Sandbox Code Playgroud)

进入我用JsonProperty属性装饰的对象:

[JsonObject(MemberSerialization.OptIn)]
public class User
{
    [JsonProperty("user_id", Required = Required.Always)]        
    public virtual long UserId { get; set; }

    [JsonProperty("display_name", Required = Required.Always)]
    public virtual string Name { get; set; }

    ...
}
Run Code Online (Sandbox Code Playgroud)

我得到以下异常:

Newtonsoft.Json.JsonSerializationException:在JSON中找不到必需属性'user_id'.

这是因为JSON对象是一个数组吗?如果是这样,我如何将其反序列化为一个User对象?

提前致谢!

.net c# serialization json json.net

25
推荐指数
3
解决办法
5万
查看次数

XML Serialize boolean为0和1

XML Schema Part 2指定定义为boolean的数据类型的实例可以具有以下合法文字{true,false,1,0}.例如,在反序列化时,以下XML将布尔属性"Emulate"设置为true.

<root>
    <emulate>1</emulate>
</root>
Run Code Online (Sandbox Code Playgroud)

但是,当我将对象序列化回XML时,我得到的true不是数值.我的问题是,有没有办法可以控制XML中的布尔表示?

c# xml schema serialization constraints

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

重构"程序"WCF服务

我正在尝试将一个可怕的WCF服务重构为更易于管理的东西.在编写本文时,该服务通过构造函数大约需要9个依赖项,这使得单元测试变得非常困难.

该服务通过状态机处理本地状态,对参数进行验证,抛出故障异常,执行实际操作并通过发布/子通道触发发布事件.所有其他服务调用的代码非常相似.

我意识到我可以通过面向方面编程或WCF行为以不同方式完成其中的几个(参数验证,发布/订阅通知),但我的直觉告诉我一般方法是错误的 - 这感觉太"程序化" .

我的目标是将实际操作的执行与发布/子通知之类的内容分开,甚至可能将错误处理分开.

我想知道像DDDCQRS或其他技术的首字母缩略词是否可以帮到这里?遗憾的是,我不熟悉定义之外的那些概念.

这是一个这样的WCF操作的(简化)示例:

public void DoSomething(DoSomethingData data)
{
    if (!_stateMachine.CanFire(MyEvents.StartProcessing))
    {
        throw new FaultException(...);
    }

    if (!ValidateArgument(data))
    {
        throw new FaultException(...);
    }

    var transitionResult =
        _stateMachine.Fire(MyEvents.StartProcessing);

    if (!transitionResult.Accepted)
    {
        throw new FaultException(...);
    }

    try
    {
        // does the actual something
        DoSomethingInternal(data);

        _publicationChannel.StatusUpdate(new Info
        {
            Status = transitionResult.NewState
        });
    }
    catch (FaultException<MyError> faultException)
    {
        if (faultException.Detail.ErrorType == 
            MyErrorTypes.EngineIsOffline)
        {
            TryFireEvent(MyServiceEvent.Error, 
                faultException.Detail);
        }
        throw;
    }
}
Run Code Online (Sandbox Code Playgroud)

c# wcf refactoring dependency-injection cqrs

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

调查哪个Windows服务正在侦听哪个IP和端口

我正在调查一个生产系统,其中有几个Windows服务通过TCP/IP套接字相互通信.我试图弄清楚哪个可执行文件正在侦听给定计算机上的哪个IP地址和哪个端口.

通过浏览每个Windows服务的模糊配置文件,有没有一个系统工具可以更轻松地给我我想要的细节?

windows-services

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

Resharper自定义模式更改方法名称

我想改变方法签名

public static async Task Load()

public static async Task LoadAsync()

如何在ReSharper中定义自定义模式?

c# resharper-8.0

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

拦截笔记本电脑上的Fn键

有时当我在Thinkpads/MSI笔记本电脑上工作时,CtrlFn键被交换(Fn是最左边的键),它让我疯狂 - 我一直在打,Fn而不是Ctrl.

我想知道是否可以截取Fn密钥.我想写一个交换 Ctrl/Fn 密钥的钩子,但似乎Fn根本没有被操作系统处理.

有任何想法吗?

language-agnostic keyboard hook keyboard-hook

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

使用自动递增id列创建MySQL视图

我有一个MySQL数据库,从中创建一个视图.是否可以为视图中的每一行添加自动递增ID?

我试过了

CREATE ALGORITHM=UNDEFINED DEFINER=`database_name`@`%` SQL SECURITY DEFINER VIEW `MyView` AS 
set @i = 0;
select  @i:=@i+1 as `id`
        ...
Run Code Online (Sandbox Code Playgroud)

但这在视图中不起作用.

mysql view

14
推荐指数
3
解决办法
2万
查看次数

为Visual Studio 2010 VsPackage创建全局异常处理程序

在以前版本的Visual Studio中,只有一个扩展名的入口点(更具体地说,是一个插件),该OnConnect方法.从那里可以执行所有Visual Studio操作,例如添加菜单项和设置全局异常处理程序,以优雅地处理未处理的异常.

在Visual Studio 2010的VsPackage中,事情的工作方式不同 - 应用程序的许多部分(例如IWpfTextView)由MEF组成,并且在没有明确控制包的情况下加载,从而处理来自那些非常困难的异常.

如果没有将所有这些组件明确地包装在try..catch自己的组件中,我怎样才能有效地为我的VsPackage中的(非关键)异常实现全局处理程序?同样,目标是使用ReSharper的异常对话框,它可以处理全局异常而不会崩溃Visual Studio.

exception-handling visual-studio-2010 vspackage

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

让ReSharper继续"使用系统"; 优化使用时

我想知道是否有一些选项可以让ReSharper不再删除该using System;指令?也许这可以在某处配置?

另外,有没有办法让ReSharper像Visual Studio 2008那样对剩余的指令进行排序(按字母顺序,我认为)?

谢谢.

c# resharper using-directives visual-studio-2008

13
推荐指数
2
解决办法
1502
查看次数