小编Jar*_*red的帖子

我可以指示Json.NET反序列化,但不能序列化特定属性吗?

我有一个AngularJS + MVC 5 + Web API 2应用程序,允许用户在浏览器中管理对象集合,并在单击"保存"按钮时立即提交所有更改.在进行更改时,会向JavaScript对象添加一个或多个属性:IsAdded,IsUpdated,IsRemoved.在服务器端检查属性以确定在持久化模型时要执行的操作.

该模型通过Web API使用Json.NET提供,基类为:

public class CollectionItemViewModel : ICollectionItem
{
    public bool IsAdded { get; set; }
    public bool IsUpdated { get; set; }
    public bool IsRemoved { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

这很好用,但增加了我的序列化JSON.我可以选择不使用ShouldSerialize序列化这三个属性,但这也会阻止它们反序列化.

public bool ShouldSerializeIsAdded()
{
    return false;
}

public bool ShouldSerializeIsUpdated()
{
    return false;
}

public bool ShouldSerializeIsRemoved()
{
    return false;
}
Run Code Online (Sandbox Code Playgroud)

是否可以使用Json.NET反序列化,但不能序列化特定属性?

c# json.net

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

在Docker上进行URL Rewrite 2.0安装失败

我正在尝试使用此Dockerfile安装URL Rewrite 2.0:

FROM microsoft/aspnet:4.6.2
WORKDIR /inetpub/wwwroot
COPY obj/Docker/publish .
ADD https://download.microsoft.com/download/C/9/E/C9E8180D-4E51-40A6-A9BF-776990D8BCA9/rewrite_amd64.msi /install/rewrite_amd64.msi
RUN net start MSIServer
RUN msiexec.exe /i c:\install\rewrite_amd64.msi /quiet /passive /qn /L*v "C:\package.log"
Run Code Online (Sandbox Code Playgroud)

构建容器映像时,看到以下错误消息:

无法访问Windows Installer服务。如果未正确安装Windows Installer,则会发生这种情况。请与您的支持人员联系以获得帮助。

运行容器后查看package.log,我看到了:

SI (c) (30:A4) [08:32:10:438]: Failed to connect to server. Error: 0x80040150
SI (c) (30:A4) [08:32:10:438]: Note: 1: 2774 2: 0x80040150: 2774 2: 0x80040150
Run Code Online (Sandbox Code Playgroud)

执行中 net start msiserver在正在运行的容器上将返回一条消息,表明该服务已启动,Google表示读取注册表可能是0x80040150的问题。

是否期望以这种方式安装URL Rewrite可以正常工作,还是我需要以某种方式提升权限?

更新msiexec正在运行的容器上运行相同的命令将成功安装URL Rewrite。

url-rewrite-module dockerfile

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

标签 统计

c# ×1

dockerfile ×1

json.net ×1

url-rewrite-module ×1