小编Rob*_*uch的帖子

使用Visual Studio中的NLog在多个项目中设置C#解决方案

我在Visual Studio 2012中的解决方案目前包含两个项目:

  • DLL
  • WPF应用程序(需要DLL的方法)

DLL和WPF应用程序都NLog用于日志记录.目前,每个项目都包含NLogDLL本身.

这是我不明白的:

  1. 我似乎没有必要NLog在每个项目中包含相同的DLL.
  2. 但是,DLL应该可以在其他解决方案中重用,即NLogDLL必须以某种方式包含在DLL项目中.

什么是设置Visual Studio解决方案和/或项目的适当方法?

c# dll nlog project visual-studio-2012

11
推荐指数
2
解决办法
6955
查看次数

EditText需要单击两次才能打开搜索对话框

我的应用程序有两个EditText元素.两者都像这样实现OnClickListener:

editText1.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        // Open search dialog
        doSomeStuff();
        }
    });
Run Code Online (Sandbox Code Playgroud)

doSomeStuff()表示:单击文本字段可打开搜索对话框onSearchRequested().搜索结果将写回文本字段.

这工作正常但如果我单击其他文本字段,我总是必须在搜索对话框出现之前单击两次.它来自何处以及如何更改它以便在单击一次时出现搜索对话框?

search android android-edittext

10
推荐指数
1
解决办法
6755
查看次数

将数组转换为ObservableCollection

在C#应用程序中,使用以下数组:

CProject[] projectArray = this.proxy.getProjectList(username, password);
Run Code Online (Sandbox Code Playgroud)

但是我需要的projectArrayObservableCollection<CProject>.建议的方法是什么?到目前为止,我使用以下语句:

ObservableCollection<CProject> projectList = new ObservableCollection<CProject>(projectArray);
Run Code Online (Sandbox Code Playgroud)

您是否也会使用此声明或者您会推荐其他方式吗?

c# arrays observablecollection

10
推荐指数
2
解决办法
9978
查看次数

由 Google Jib 和 Maven 构建的 Docker 镜像有多个标签吗?

使用jib-maven-plugin我想构建一个带有多个标签的图像。虽然mvn jib:build基本上工作正常,但它“仅”用latest.

我的 Mavenpom.xml定义如下:

<plugin>
    <groupId>com.google.cloud.tools</groupId>
    <artifactId>jib-maven-plugin</artifactId>
    <version>2.8.0</version>
    <configuration>
        <to>
            <image>my-private-registry.org/my-image</image>
        </to>
    </configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)

文档显示可以jib.to.tags在 XML 中使用来定义标签列表。但是,我想在 Jenkins 管道中运行构建步骤,即我无法对pom.xml.

运行命令时是否可以传递标签列表mvn,例如通过设置一些-D参数?

jib maven-jib

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

在C#中实现消息/订阅机制

我正在使用MVVM模式对WPF应用程序进行原型设计.在回答这个问题后,我设置了一个ModelProviderService将模型公开为属性的方法.服务的消费者是视图模型,即他们从服务中提取模型而不是自己实例化.

class ModelProviderService {

  private LoginModel loginModel;
  public LoginModel LoginModel {
    get { return loginModel; }
    set { loginModel = value; }
  }

  private ProjectsModel projectsModel;
  public ProjectsModel ProjectsModel {
    get { return projectsModel; }
    set { projectsModel = value; }
  }

  public ModelProviderService() {
    loginModel = new LoginModel();
    projectsModel = new ProjectsModel();
  }    
}
Run Code Online (Sandbox Code Playgroud)

现在,这将是将要发生的事情:

  • 视图模型更改例如LoginModel属性的属性.
  • viewmodel通过设置其属性将model属性推送回服务: modelService.LoginModel.MyProperty = localLoginModel.MyProperty;
  • 该服务应发布一条消息:"嘿,我的模型LoginModel只是改变了."
  • 订阅此消息的任何其他视图模型都将从服务中提取此更改的模型.

我该如何实现:

  1. "广播信息"?
  2. 订阅邮件?

c# wpf events message mvvm

7
推荐指数
1
解决办法
2685
查看次数

使用EPPlus检查文件是否确实是Excel文件

我在C#中使用EPPlus来读取Excel(.xlsx)文件.初始化完成如下:

var package = new ExcelPackage(new FileInfo(filename));
Run Code Online (Sandbox Code Playgroud)

这工作正常但有没有办法检查指定filenamepackage实际上是否是一个有效的.xlsx文件?否则,在非Excel对象上操作时会出现异常,例如,如果用户意外打开.zip文件或其他.

c# excel epplus

7
推荐指数
1
解决办法
4207
查看次数

Jenkins 在构建时是否缓存依赖项和 Docker 层?

我正在开发一个 React 应用程序,它将被放入一个 Docker 镜像中。我想使用 Jenkins 自动化构建图像的步骤。

这是我目前Jenkinsfile...

pipeline {

    agent any

    stages {
        stage('Build') {
            steps {
                script {
                    def commitHash = GIT_COMMIT.take(7)
                    echo 'Building Docker image for commit hash: ' + commitHash
                    def customImage = docker.build("myImage")
                }
            }
        }
    }

}
Run Code Online (Sandbox Code Playgroud)

图像本身已成功创建。我现在想知道: 1. Jenkins 会在package.json每次构建时下载我的所有依赖项吗?2. Jenkins 会在每次构建时下载所有层吗?

或者 Jenkins 会注意到依赖项和/或图像层已经存在吗?

node.js jenkins docker jenkins-pipeline

7
推荐指数
1
解决办法
7255
查看次数

在 Spring Boot Maven 插件创建的 Docker 镜像中安装包

我的 Spring Boot 项目包含 Spring Boot Maven 插件,我使用它通过运行mvn spring-boot:build-image.

<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <executions>
        <execution>
            <phase>package</phase>
            <goals>
                <goal>build-image</goal>
            </goals>
        </execution>
    </executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)

将此映像部署到 Docker 堆栈时,我需要使用该curl命令运行运行状况检查,但不幸的curl是默认构建包未安装该命令。

是否可以进一步调整图像构建过程,以便curl安装到图像中?我找不到必要的信息

docker spring-boot spring-boot-maven-plugin

7
推荐指数
1
解决办法
2997
查看次数

使用 AssertJ 比较具有某些字段的“特殊”断言的两个对象

鉴于以下课程...

public class UserAccount {
  private Long id;
  private String email;
  private String activationCode;
  private Date createDate;
}
Run Code Online (Sandbox Code Playgroud)

...我需要使用 AssertJ 将实际对象与预期对象进行比较。然而, fieldsid和具有动态值,我无法将activationCodecreateDate硬编码到断言中。

所以下面的断言将会失败:
assertThat(actualUserAccount).isEqualTo(expectedUserAccount);

然后我发现以下内容会忽略某些字段:

assertThat(actualUserAccount)
        .usingRecursiveComparison()
        .ignoringFields("id", "activationCode", "createDate")
        .isEqualTo(expectedUserAccount);
Run Code Online (Sandbox Code Playgroud)

但我实际上正在寻找的是通过对某些字段进行以下特殊检查来断言对象是否相等:

  • 有没有id任何Long价值?
  • 有没有activationCode任何String价值?
  • 有没有createDate任何Date价值?

或者除了为每个字段编写一个断言之外没有其他方法吗?

assertj

7
推荐指数
1
解决办法
9920
查看次数

使用 Yarn 2 (Berry) 将应用程序打包到 Docker 镜像中

我正在将 VueJS 应用程序从“经典”Yarn 1.x 迁移到 Yarn 2。遵循安装文档非常简单,并且可以正常工作。

当将应用程序打包到 Docker 镜像中时,棘手的部分就出现了。

当前 Dockerfile

FROM node:14-alpine AS build-stage

WORKDIR /app

COPY package.json yarn.lock ./

RUN yarn install

COPY . ./

RUN yarn build --modern \
    && find dist -type f -exec gzip -k "{}" \;

FROM nginx:mainline-alpine as production-stage

RUN apk add --no-cache curl

HEALTHCHECK CMD curl -f http://localhost || exit 1

COPY docker/entrypoint.sh /
RUN chmod +x /entrypoint.sh

COPY docker/app.nginx /etc/nginx/conf.d/default.conf
COPY --from=build-stage /app/dist /usr/share/nginx/html

ENTRYPOINT [ "/entrypoint.sh" ] …
Run Code Online (Sandbox Code Playgroud)

yarnpkg yarnpkg-v2

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