小编Jos*_*hlo的帖子

SyntaxError:无效的正则表达式:缺少/

根据http://www.regexr.com/38o5d我的reqex似乎工作,但当我实现它到我的JavaScript

var prefix = hash.replace(/\/|#/g, '');

我将收到以下错误:SyntaxError:无效的正则表达式:缺少/

javascript regex

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

Roslyn CodeFixProvider给出了VS 2015错误

我创建了一个roslyn CodeAnalyzer和一个CodeFixProvider.

分析器运行正常,并创建规则,但是当我尝试打开显示修复的弹出窗口时,我收到"发生一个或多个错误" VS弹出窗口.

我第一次运行它,它工作正常,但后来我停止调试,之后它给了我这个错误,所以我尝试了另一台计算机,并在我第一次调试时再次工作正常.

我的分析器:

private static void Analyze(SyntaxNodeAnalysisContext context)
{
    var localDeclaration = (LocalDeclarationStatementSyntax)context.Node;

    foreach (var variable in localDeclaration.Declaration.Variables)
    {
        var initializer = variable.Initializer;
        if (initializer == null) return;
    }

    var node = context.Node;

    while (node.Kind() != SyntaxKind.MethodDeclaration)
    {
        node = node.Parent;
    }

    var method = (MethodDeclarationSyntax)node;

    if (method.AttributeLists.Any(x => x.Attributes.Any(y => y.Name is IdentifierNameSyntax && ((IdentifierNameSyntax)y.Name).Identifier.Text.ToLower().Contains("test"))))
    {
        context.ReportDiagnostic(Diagnostic.Create(Rule, context.Node.GetLocation()));
    }
}
Run Code Online (Sandbox Code Playgroud)

我的CodeFixProvider

private async Task<Document> AddAssertionsAsync(Document document, LocalDeclarationStatementSyntax localDeclaration, CancellationToken cancellationToken)
{
    var editor …
Run Code Online (Sandbox Code Playgroud)

c# roslyn visual-studio-2015

5
推荐指数
1
解决办法
181
查看次数

如何查看类是否已实现与Roslyn的接口

我仍然是新手Roslyn,因此希望这不是一个愚蠢的问题。

我正在寻找的是一种查看类是否已实现接口的所有方法的方法,如果没有实现,则高亮显示接口,就像内置的“实现接口”一样。

到目前为止,我可以看到方法名称是否已实现,但是我还没有找到一种方法来查看是否在方法上设置了正确的returntype。

c# roslyn roslyn-code-analysis

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

RabbitMq在docker中运行时拒绝连接

我的docker-compose文件如下所示:

version: '2'

services:
  explore:
    image: explore
    build:
      context: ./Explore
      dockerfile: VsDockerfile
    environment:
      - "ElasticUrl=http://localhost:9200"
      - "RabbitMq/Host=localhost"
      - "RabbitMq/Username=guest"
      - "RabbitMq/Password=guest"
    networks:
      - localnet

  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:5.4.3
    container_name: elasticsearch
    environment:
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    ports:
      - 9200:9200
    volumes:
      - ./esdata:/usr/share/elasticsearch/data
    networks:
      - localnet

  rabbit:
    image: rabbitmq:3.6.7-management
    hostname: rabbit
    ports:
      - 15672:15672
      - 5672:5672
    networks:
      - localnet

networks:
  localnet:
    external:
      name: localnet
Run Code Online (Sandbox Code Playgroud)

如果我在浏览器中输入http:// localhost:15672,我会得到rabbitmq接口,但是如果我尝试从我的Explore项目连接如下:

public SqlToRabbitProcessor(SqlToRabbitRepository sqlToRabbitRepository)
{
    _sqlToRabbitRepository = sqlToRabbitRepository;

    var factory = new ConnectionFactory
    {
        HostName = Environment.GetEnvironmentVariable("RabbitMq/Host"), …
Run Code Online (Sandbox Code Playgroud)

sockets rabbitmq .net-core docker-compose

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

dotnet maui 如何隐藏桌面上的后退按钮?

我试图隐藏桌面上图像中显示的后退按钮,但无论我尝试什么,它都会继续显示。

我努力了

<Shell.BackButtonBehavior>
    <BackButtonBehavior IsVisible="False" IsEnabled="False" />
</Shell.BackButtonBehavior>
Run Code Online (Sandbox Code Playgroud)

我已经尝试遵循这篇文章为什么后退按钮隐藏在毛伊岛?

我的导航是这样完成的await Shell.Current.GoToAsync(new ShellNavigationState(location), false);

我错过了什么吗?

在此输入图像描述

maui .net-maui maui-windows

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

从另一个项目导入 .proto 文件

我有几个包含不同 protobuf 文件的合同项目,但是某些消息类型具有相同的消息类型,例如

message user
{
  Address address = 1
}

message Address 
{
  ....
}
Run Code Online (Sandbox Code Playgroud)

我现在创建了一个共享项目并向其中添加了一个 Address.proto 文件,其中仅包含

syntax = "proto3"
option csharp_namespace = "shared.protos"
package AddressPackage
message Address {....}
Run Code Online (Sandbox Code Playgroud)

我的问题是弄清楚如何将其导入到我不同合同项目中的原型中。我已添加共享项目作为参考,但我从那里尝试的所有其他内容都导致错误。

我知道我需要使用import只是还没有弄清楚如何写字符串。

更新

我正在使用 gRPC.tools nuget 并且所有 .proto 文件都设置为 protobuf 编译器

文件结构如下

用户合同项目

  • Protos -- User.proto 共享项目
  • Protos -- Address.proto

两个项目都在它自己的文件夹中,并且这些文件夹彼此相邻。

在它说的共享项目中

<ItemGroup>
  <None Remove="Protos\Address.proto" />
</ItemGroup>

<ItemGroup>
  <Protobuf Include="Protos\Address.proto">
    <CopyToOutputDirectory>Always</CopyToOutputDirectory>
  </Protobuf>
</ItemGroup>
Run Code Online (Sandbox Code Playgroud)

并在 user.contract 中说

<ItemGroup>
  <None Remove="Protos\User.proto" />
</ItemGroup>

<ItemGroup>
  <Protobuf Include="Protos\User.proto" />
</ItemGroup>
Run Code Online (Sandbox Code Playgroud)

提前致谢。

c# protocol-buffers protobuf-net

3
推荐指数
3
解决办法
7615
查看次数

Javascript数据结构

我想知道是否有可能做这样的事情:

if (mb == null || typeof (mb) != "object") {
    var mb = new Object();
}


mb = {
    tests: {
        onAnimals: {
            test: function() {
                return "";
            }
        }
        onHumans: {
            test: function() {
                return "";
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

当我尝试它时,我可以看到测试,但当我进一步指出时,我无法看到动物/ onHumans.

javascript对我来说还是新手,所以希望你能提供帮助.

javascript class-design

0
推荐指数
1
解决办法
818
查看次数