小编Chr*_*ris的帖子

VS2012:执行发布时拒绝访问路径

当尝试在VS2012中发布应用程序(特定于WCF服务)时,我收到一条错误消息:"执行发布时出现异常:拒绝访问路径[path]." 引用的文件是我正在尝试执行的发布配置文件,类型为".pubxml"

我已经使用SysInternals Process Explorer检查另一个进程是否已锁定文件,我已关闭VS2012并以管理员权限重新打开它,并重新启动了我的PC.

这与此处描述的问题相同:VS2012创建发布包时出错:执行发布中的异常拒绝访问路径,我宁愿评论该问题,询问他是否找到了解决方案,但遗憾的是我还没有评论权限.

编辑------

我正在使用Visual Studio 2012 Ultimate和Update 2(11.0.60315.01 Update 2)

visual-studio-2012

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

如何使用JSON.net将枚举序列化为null值

我正在使用第三方REST API,其中一个字段(类型string)具有一组已知的值,我已enum在我的代码中建模.在StringEnumConverter如所描述的从JSON.NET正确串行化所有但这些值中的一个[EnumMemberAttribute]注释.特别是对于此字段,REST API将null值转换为第三方系统中的"系统默认值"; 但是,当JSON.NET序列化时,它使用成员名称而不是注释中描述的值.我知道我可以编写一个自定义转换器来处理这个,但我的问题是,如果有一种方法可以让它在没有一个的情况下工作,因为它只是null没有正确序列化的值?

enum在我的代码我已经定义:

[JsonConverter(typeof(StringEnumConverter))]
public enum InitialScanLevel
{
    [EnumMember(Value = null)]
    SystemDefault,

    [EnumMember(Value = "0")]
    ModelDeviceOnly,

    [EnumMember(Value = "1")]
    InitialAppPopulation,

    [EnumMember(Value = "2")]
    DiscoverSslCerts,

    [EnumMember(Value = "3")]
    DiscoverOpenPorts,

    [EnumMember(Value = "4")]
    AdvancedPortDiscovery,

    [EnumMember(Value = "5")]
    DeepDiscovery
}
Run Code Online (Sandbox Code Playgroud)

对于InitialScanLevel.SystemDefault生成的JSON(不是第三方API期望的)

{
    other fields...,
    "initialScanLevel":"SystemDefault",
    other fields...
}
Run Code Online (Sandbox Code Playgroud)

但应该是

{
    other fields...,
    "initialScanLevel":null,
    other fields...
}
Run Code Online (Sandbox Code Playgroud)

对于InitialScanLevel.DeepDiscovery生成的JSON(这是第三方API期望的)

{
    other fields...,
    "initialScanLevel":"5",
    other fields... …
Run Code Online (Sandbox Code Playgroud)

c# json.net

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

标签 统计

c# ×1

json.net ×1

visual-studio-2012 ×1