小编Pat*_*ski的帖子

我可以在不更改服务的情况下更改WCF ServiceContract接口的命名空间吗?

有没有办法更改WCF ServiceContract接口的.NET命名空间,但仍然使WCF服务向后兼容使用旧的(命名空间除外)ServiceContract的客户端?例如,假设我(在vb.net中):

Namespace MyCompany.MyPoorlyNamedProject
    <ServiceContract(Name:="ThingService")> _
    <CLSCompliant(True)> _
    Public Interface IThingService
        ...
    End Interface
EndNamespace
Run Code Online (Sandbox Code Playgroud)

我想改变它

Namespace MyCompany.MyProject
    <ServiceContract(Name:="ThingService")> _
    <CLSCompliant(True)> _
    Public Interface IThingService
        ...
    End Interface
End Namespace
Run Code Online (Sandbox Code Playgroud)

根本不改变服务.

我试过这样做,但是我从wsdl引用的xsds显示了新的命名空间名称,这似乎是不兼容的.

有任何想法吗?

wcf servicecontract

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

作为Jenkins管理员,如何在不登录的情况下获取用户的API令牌?

作为管理员,如何在不登录的情况下为我以外的用户获取API令牌?当我访问用户配置页面时,我看到的只是"令牌被隐藏",我也无法改变它.

jenkins jenkins-api

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

对于多个消息和成功/失败,是否有通知模式的替代方案?

对于多个消息和成功/失败,是否有通知模式的替代方案?

我有一个类OperationResult,我用它来返回一个Success布尔值和一个"错误"消息列表.这些消息有时是意外错误,但更常见的是经常发生的普通情况.有时我们返回单个错误消息,但有时我们返回几个.我希望找到一个更好的方法.

这似乎或多或少是福勒倡导的通知模式.然后,消费者对成功状态和错误做一些合理的事情,通常向用户显示错误,但有时在非致命错误的情况下继续.

因此,我有很多服务方法(不是Web服务方法),看起来像这样:

private ThingRepository _repository;
public OperationResult Update(MyThing thing)
{
    var result = new OperationResult() { Success = true };

    if (thing.Id == null) {
        result.AddError("Could not find ID of the thing update.");
        return result;
    }

    OtherThing original = _repository.GetOtherThing(thing.Id);
    if (original == null) return result;

    if (AnyPropertyDiffers(thing, original))
    {
        result.Merge(UpdateThing(thing, original));
    }

    if (result.Success) result.Merge(UpdateThingChildren(thing));
    if (!result.HasChanges) return result;

    OperationResult recalcResult = _repository.Recalculate(thing);

    if (recalcResult.Success) return result;

    result.AddErrors(recalcResult.Errors);
    return result;
}
private OperationResult …
Run Code Online (Sandbox Code Playgroud)

c# oop design-patterns return messages

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

Kafka FETCH_SESSION_ID_NOT_FOUND 经常出现在日志中

运行 Kafka 2.3.0、Kafka 客户端 2.1.1,我的经纪人不断输出以下日志:

[2019-09-06 15:18:03,596] INFO [ReplicaFetcher replicaId=1, leaderId=0, fetcherId=0] Node 0 was unable to process the fetch request with (sessionId=1458702821, epoch=538): FETCH_SESSION_ID_NOT_FOUND. (org.apache.kafka.clients.FetchSessionHandler)
[2019-09-06 15:21:11,145] INFO [GroupMetadataManager brokerId=1] Removed 0 expired offsets in 1 milliseconds. (kafka.coordinator.group.GroupMetadataManager)
[2019-09-06 15:22:33,737] INFO [ReplicaFetcher replicaId=1, leaderId=0, fetcherId=0] Node 0 was unable to process the fetch request with (sessionId=1917353656, epoch=538): FETCH_SESSION_ID_NOT_FOUND. (org.apache.kafka.clients.FetchSessionHandler)
[2019-09-06 15:27:03,768] INFO [ReplicaFetcher replicaId=1, leaderId=0, fetcherId=0] Node 0 was unable to process the fetch request with (sessionId=404608404, epoch=538): FETCH_SESSION_ID_NOT_FOUND. …
Run Code Online (Sandbox Code Playgroud)

java apache-kafka

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

SQL Server Management Studio中的"收藏夹"或"宏"?

我有一些数据库,我总是使用SQL Server Management Studio.我希望能够创建一个工具栏按钮或键盘快捷键,自动打开一个新的查询窗口(在当前的SSMS实例中)并连接到给定(可能已注册)的数据库.而已.这就是我所需要的一切.这个烟灰缸,桨游戏和遥控器.这就是我所需要的一切.

就像现在一样,我必须展开对象资源管理器,折叠/展开两到八棵树,右键单击我的数据库,然后选择"新建查询".我认为没办法做到这一点,这可能会让我每天节省30-60秒,这至少值1美元和NINE CENTS.

sql-server ssms sql-server-2005

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

自动映射:在映射中一起使用源和目标

在Automapper中,在配置String属性的映射时是否可以将源与目标连接起来?我以为我可以这样做:

Mapper.CreateMap<Foo, Bar>()
   .ForMember(d => d.Notes, opt => opt.MapFrom(s => d.Notes + s.Notes)));
...
Mapper.Map<Foo, Bar>(source, destination);
Run Code Online (Sandbox Code Playgroud)

但是,在MapFrom lambda中,d显然不在范围内.有关如何在我的映射中组合源值和目标值的任何建议?

c# automapper

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

如何基于.NET Core创建ASP.NET项目,而不是基于完整的框架?

在听了几个月之后,我正在阅读关于.NET Core的所有内容.我有Visual Studio 2015,所以我想我会尝试一下.我进入File - New Project,选择ASP.NET Web Application,看看我只能选择完整.NET Framework的一个版本(例如4.6). 如何基于.NET Core创建ASP.NET项目,而不是基于完整的框架?

我以为会有一些关于此的教程,但我找不到任何教程.我所看到的只是基于完整的框架.

.net asp.net visual-studio-2015 .net-core

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

ASP.NET Core CORS请求被阻止;我的API为什么不应用正确的标头?

尝试通过身份验证设置CORS。我在http:// localhost:61000上有一个Web API网站,在http:// localhost:62000上有一个正在使用的Web应用程序。在Web API Startup.cs中,我具有:

 public void ConfigureServices(IServiceCollection services)
 {
        services.AddCors(o => o.AddPolicy("MyPolicy", corsBuilder =>
        {
            corsBuilder.WithOrigins("http://localhost:62000")
                .AllowAnyMethod()
                .AllowAnyHeader()
                .AllowCredentials();
        }));
        IMvcBuilder builder = services.AddMvc();
        // ...
}

// ...

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
        app.UseCors("MyPolicy");
        app.UseDeveloperExceptionPage();
        app.UseDefaultFiles();
        app.UseStaticFiles();
        app.UseMvc();
}
Run Code Online (Sandbox Code Playgroud)

所有的说明似乎表明这应该是我所需要的。在应用的Javascript中,我调用:

    $.ajax({
        type: 'POST',
        url: "http://localhost:61000/config/api/v1/MyStuff",
        data: matchForm.serialize(),
        crossDomain: true,
        xhrFields: { withCredentials: true },
        success: function (data) {
            alert(data);
        }
    });
Run Code Online (Sandbox Code Playgroud)

我进入Chrome: Failed to load http://localhost:61000/config/api/v1/MyStuff: No 'Access-Control-Allow-Origin' header is present …

cross-site asp.net-core

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

在 Blazor 中,如何将每个组件实例的元素 ID 设置为不同的值,但在组件实例内设置为相同的值?

在 Blazor 中,我可能经常在页面上呈现相同的组件两次。在这个组件中,我可能会<label for="foo">引用<input id="foo">同一组件中的 an 。

有没有一种方便的方法可以将每个组件的两个 ID 设置为不同的值,但在组件内设置相同的值?如果每个组件都有一个不同的参数,我们可以使用它,但是如果参数值之间没有差异怎么办?

我想我必须声明一个私有实例值,说private Guid ComponentInstanceId {get;} = Guid.NewGuid();并将其与<label for="foo-@ComponentInstanceId">...一起使用<input id="foo-@ComponentInstanceId">,但也许有更好的方法?

blazor

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

如何有效地编写WPF?

当我第一次了解微软当时用于开发桌面应用程序的新框架WPF时,我认为它的最大好处之一就是它的效率.毕竟,我已经知道我想要使用的GUI控件和元素是什么 - 我只需要在页面上将它们全部打开,然后将所有绑定连接起来,我就完成了.之后,我了解了MVVM模式,它承诺在我的WPF应用程序中清晰地分离关注点.

我以为这会很棒!我和我的团队在工作中创建了几个不同的管理和数据输入WPF应用程序,因此我开始使用强大但简单的GUI来制作工作软件,对吧?

不是那么快,那里,牛仔编码器.我的经验是写WPF很慢.

好吧,至少我这样做的方式.你看,在我在白板上画了我的GUI之后,我用我想要的控件编写了XAML代码.正如预期的那样,这部分很快 - 整个窗口的布局非常快.在那之后,你想要这些元素做的所有小东西需要一段时间.在某些情况下,我似乎总是想要使这个文字变得粗体; 在其他情况下显示一个红色错误框.

然后事情解开了:这个绑定在这里工作不正常 - 我必须编写一个转换器并调整正确值的布局.哎呀,我忘记了额外的NotifyPropertyChanged那里.哦,我想在这种状态下使用不同的模板,所以我必须弄清楚在某些情况下我可以使用什么来交换模板.这些数据是异步进入的,所以我需要确保在正确的线程上发生了正确的事情,并且Property也获得了NotifyChanged.废话,当我最大化我的窗口时,它不会像我想象的那样伸展 - 必须是因为它的容器高度没有定义,但我不想定义它,所以我必须让它伸展它的家长.哦,现在我真的想在这里让用户控制这些东西,所以我最好实现一些依赖属性...

我一次又一次地花费数小时和数日来处理那些感觉如此小而小的东西.我很快就会采用切割可用性功能和外观增强功能,因为这样做太长了.

有没有人有任何提示或原则我需要尝试才能有效地编写WPF?

wpf

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