小编Jos*_*nge的帖子

我可以将system.serviceModel拆分为单独的.config文件吗?

我想将web.config的system.serviceModel部分分成一个单独的文件,以方便一些环境设置.我的努力没有结果.当我尝试使用这种方法时.wcf代码抛出一个异常:"'System.ServiceModel.ClientBase的类型初始值设定项1引发了异常.任何人都可以告诉我我做错了什么?

Web.config文件:

<configuration>
  <system.serviceModel configSource="MyWCF.config" />
  ....
Run Code Online (Sandbox Code Playgroud)

MyWCF.config:

  <system.serviceModel>
    <extensions>
      ...
    </extensions>

    <bindings>
      ...
    </bindings>

    <behaviors>
      ...
    </behaviors>

    <client>
       ...
    </client>

  </system.serviceModel>
Run Code Online (Sandbox Code Playgroud)

wcf web-config asp.net-3.5

20
推荐指数
2
解决办法
8936
查看次数

如何禁用网格中的元素

我有多个网格显示基于给定过滤器的数据(在使用REST Api的Web应用程序中).显示的数据结构始终相同(以简化问题),但根据用户所在的屏幕,显示的结果不同.

此外,这是问题,必须禁用某些结果,以便用户无法选择它们.

示例:Foo有N条.如果我想向父亲(foo)添加一个新的子(bar),我会进入搜索屏幕,但我希望过滤后的网格显示为已经与父亲相关的残疾儿童.

目前我通过根据场景和"禁用"我不想要的结果执行特定连接来控制服务器上的此问题(数据库查询).但是这种方法导致我无法重用查询(由于特定的连接.也许我需要搜索Bars int order将它们与其他父亲Baz联系起来,我想要禁用已经与当前父亲相关的条...)

另一种方法可能如下:

  • 在内存中的数组中保存与父亲相关的子(仅ID)(javascript)
  • 在"prerender"网格事件(或类似)中检查每个元素是否包含在前一个数组中(按id搜索).如果是,请将其标记为已禁用(例如).这是客户端的可重用解决方案,我总是可以在服务器端重用相同的查询.

在开始实施此解决方案之前,我想知道是否有更好的选择.我确信这是一个反复出现的问题,我不想重新发明轮子.

任何策略或建议?

编辑:显示示例:

假设这个模型:

Category N:M Item
SalesPromotion N:M Item
Run Code Online (Sandbox Code Playgroud)

我有两个不同的屏幕:一个显示项目属于一个类别,另一个显示项目属于一个促销.在每个屏幕中,我都可以搜索项目并将它们添加到Category或SalesPromotion中.但是当我在搜索项目时,我希望已经属于Category/SalesPromotion的项目显示为已禁用(或者为了简单起见未在此示例中显示).我可以在服务器中执行此操作,执行以下查询:

-- Query for search Items in Category screen
SELECT * FROM ITEMS i
LEFT JOIN ItemsCategories ic on ic.ItemId = i.ItemId
WHERE ic.CategoryId IS NULL OR ic.CategoryId <> @CurrentCategoryId

-- Query for search Items in SalesPromotion screen
SELECT * FROM ITEMS i
LEFT JOIN ItemsSalesPromotions isp on isp.ItemId= i.ItemId
WHERE isp.PromotionId IS NULL OR isp.PromotionId …
Run Code Online (Sandbox Code Playgroud)

javascript c# sql datagrid store

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

如何在Visual Studio Team Services中运行NUnit测试

当我尝试在VSTS任务中执行NUnit测试时,我收到以下错误:

Warning: The path 'C:\a\1\s\INCASOL.IP\packages' specified in the 'TestAdapterPath' does not contain any test adapters, provide a valid path and try again.
Run Code Online (Sandbox Code Playgroud)

我在VSTS中有这些任务:

在此输入图像描述

"运行单元测试"任务配置如下: 在此输入图像描述

注意我已设置"自定义测试适配器的路径".

我认为NUnit的dll已正确复制到packages文件夹,因为在"Nuget restore"任务中我可以看到以下内容:

Added package 'NUnit.2.6.4' to folder 'C:\a\1\s\INCASOL.IP\packages'
Run Code Online (Sandbox Code Playgroud)

注意:NUnit版本是2.6.4,我正在使用托管代理

continuous-integration nunit azure-devops azure-pipelines-build-task

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

在静态类中访问或获取Autofac Container

我需要在静态类中获取或访问我的IoC容器.这是我的(简化)场景:

我在一个Startup类中注册ASP .net Web Api的依赖项(但我也是为MVC或WCF注册的.我有一个DependecyResolver项目,但为了简单起见,请考虑以下代码)

// Web Api project - Startup.cs
public void Configuration(IAppBuilder app)
{
    HttpConfiguration config = new HttpConfiguration();

    var builder = new ContainerBuilder();

    // ... Omited for clarity
    builder.RegisterAssemblyTypes(AppDomain.CurrentDomain.GetAssemblies())
        .AsClosedTypesOf(typeof(IHandle<>))
        .AsImplementedInterfaces();

    // ...
    IContainer container = builder.Build();
    config.DependencyResolver = new AutofacWebApiDependencyResolver(container);
    // ...
}
Run Code Online (Sandbox Code Playgroud)

然后,在一个单独的类库中,我有我的静态类(为了清晰起见,再次简化):

public static class DomainEvents
{
    private static IContainer Container { get; set; }

    static DomainEvents()
    {
        //Container = I need get my Autofac container here
    }

    public static void Register<T>(Action<T> callback) where …
Run Code Online (Sandbox Code Playgroud)

c# dependency-injection ioc-container autofac static-class

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

如何在Masstransit / RabbitMQ中组织队列?

我想了解使用消息的最佳做法。我已经阅读过MassTransit文档,并且已经在搜索有关此内容,但我无法得出任何结论。

我有一个发布消息的api(托管总线实例)。这些消息是多种多样的,因为此api不是微服务(用于购买,销售等的消息)。

我该如何组织我的消费者/队列?

  1. 一个队列类型的进程?例如,一个用于购买,另一个用于销售等。此解决方案可能涉及许多流程,因此我不确定这是否是一个好的解决方案。如果我想要不同的购买队列,例如purchase.stock,purchases.suppliers等?进程数可能会大大增加。我认为这是可伸缩性的一个不错的选择,但是管理如此多的流程可能很棘手。
  2. 有多个进程队列(按域对队列进行分组)?例如,一个让多个消费者消费与购买相关的消息并管理不同队列的过程,例如purchase.stock,purchases.suppliers ...这个选项对我来说更有意义,但我不确定。

masstransit message-queue servicebus rabbitmq messagebroker

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

如何在 FluentValidation 中使用 Reflection?

我有一个场景,我想使用反射来使用 FluentValidation 进行验证。像这样的事情:

public class FooValidator : AbstractValidator<Foo>
{
    public FooValidator(Foo obj)
    {
        // Iterate properties using reflection
        var properties = ReflectionHelper.GetShallowPropertiesInfo(obj);
        foreach (var prop in properties)
        {
            // Create rule for each property, based on some data coming from other service...
            //RuleFor(o => o.Description).NotEmpty().When(o => // this works fine when foo.Description is null
            RuleFor(o => o.GetType().GetProperty(prop.Name)).NotEmpty().When(o =>
            {
                return true; // do other stuff...
            });
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

调用ReflectionHelper.GetShallowPropertiesInfo(obj)返回对象的“浅层”属性。然后,我为每个属性创建一条规则。这是我获取对象属性的代码:

public static class ReflectionHelper
{
    public static IEnumerable<PropertyInfo> …
Run Code Online (Sandbox Code Playgroud)

.net c# reflection validation fluentvalidation

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