小编Kum*_*mar的帖子

如何在不加载.dll的情况下读取程序集清单

基本上需要以编程方式读取依赖项而不加载程序集本身,因为您无法卸载它们

.net c# reflection clr

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

.NET应用程序是否有最大数量的程序集?

相当多的应用程序支持插件.

拥有大量插件是否有任何缺点?是否存在可能性能下降的最佳点?

您在应用中看到的最大装配数量是多少?

.net c# architecture plugins winforms

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

Linq和订购

我有一个泛型类,可以使用通用的OrderBy参数

课程如下

 class abc<T> where T : myType
 {
   public abc(....., orderBy_Argument ){ ... }
   void someMethod(arg1, arg2, bool afterSort = false)
   {
       IEnumerable<myType> res ;
       if ( afterSort && orderBy_Argument != null )
          res = src.Except(tgt).OrderBy( .... );
       else
          res = src.Except(tgt);
   }
}
Run Code Online (Sandbox Code Playgroud)

orderBy可以是各种类型

例如

.OrderBy( person => person.FirstName )
.OrderBy( person => person.LastName )
.OrderBy( person => person.LastName, caseInsensitive etc )
Run Code Online (Sandbox Code Playgroud)

目标是使orderBy成为一个参数,而不是将其烘焙

有任何想法吗 ?

.net c# linq lambda

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

C# - 如何使AutoMapper不区分大小写?

我发现映射是来自IDataReader的区分大小写的映射,由于数据库字段都是小写且POCOCamelCase,因此这是一个无赖.

我发现Jimmy的这篇文章,AutoMapper区分大小写还是不敏感?...

某处有魔术开关吗?

.net c# automapper

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

在派生构造函数中显式调用base()是否可选?

所有代码示例总是使用base(),如下所示

class A 
{ 
    public A() 
    {
        Console.Writeline("A");
    } 
}

class B : A 
{ 
    public B():base() {} 
}
Run Code Online (Sandbox Code Playgroud)

例如http://msdn.microsoft.com/en-us/library/hfw7t1ce%28v=vs.71%29.aspx

而正如我最近发现的那样

class A 
{ 
    public A()
    {
        Console.Writeline("A");
    } 
}

class B : A 
{ 
    public B() {} 
}
Run Code Online (Sandbox Code Playgroud)

还打印A.

问 - 它是一个新的"特性"还是不好的形式,不在派生类构造函数中调用base()并且会增加我的坏业力并导致以后出现问题?

要么

可以安全地忽略调用base()吗?

.net c#

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

如何返回IQueryable <T>以进一步查询

我正在尝试从这里的PagedList.Mvc库

https://github.com/TroyGoode/PagedList

哪个有这个用法样本

var products = MyProductDataSource.FindAllProducts(); //returns IQueryable<Product> representing an unknown number of products. a thousand maybe?

        var pageNumber = page ?? 1; // if no page was specified in the querystring, default to the first page (1)
        var onePageOfProducts = products.ToPagedList(pageNumber, 25); // will only contain 25 products max because of the pageSize
Run Code Online (Sandbox Code Playgroud)

MyProductDataSource.FindAllProducts()的典型意义; 是沿着的

public IQuerable<T> MyProductDataSource.FindAllProducts()
{
   using ( var ctx = new MyCtx() )
   {
       return ctx.MyList().Where( .... );
   }
}
Run Code Online (Sandbox Code Playgroud)

当然有InvalidOperationException()和DBContext已经处理过消息

寻找有关如何返回IQueryable的最佳实践,可以在这里使用而没有问题?

.net c# asp.net-mvc visual-studio asp.net-mvc-4

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

如何建模独占行为并使其可配置

我们必须提供具有以下规则的选项列表

* you can select multiple items, as many as you want
* however, some of the items are mutually exclusive, i.e. selecting itemA should automatically deselects itemC ( if itemC is selected prviously )
Run Code Online (Sandbox Code Playgroud)

最好用以下列出的汽车油箱列表示例进行说明

Gas
Diesel
Electric
BioFuel
Ethanol
Run Code Online (Sandbox Code Playgroud)

汽车可以选择多种燃料类型,例如

biofuel and Gas 
Gas and Electric
Gas, Ethanol and Biofuel

but not 
Diesel and Gas at the same time
Run Code Online (Sandbox Code Playgroud)

尝试提出一些可配置的逻辑,以便代码读取配置并应用规则而不是了解具体的esp.因为有另一个列表具有类似的约束

有关如何建模此行为的任何帮助/指示?

更新 -

感谢大家的好主意,最简单的解决方案似乎在配置文件/表中为每种燃料类型定义了一个不兼容类型列表,如下所示

FuelID/FuelName/IncompatibleTypes 1/Gas/2 2/Diesel/1 3/Electric/4/BioFuel/5/Ethanol/etc.

其中IncomatibleTypes是nvarchar(50),它将存储不兼容的类型,如2,5,6,......等.

因此代码将读取定义,如果选择了一个项目,它将读取其他所选项目,如果它在不可用列表中找到任何内容,它可以显示消息或只是自动取消选择其他不兼容项目等.

这可能是不优雅的,但似乎是最通用的解决方案,没有代码知道任何关于特定项目的东西,而且它可以像现实中一样自由扩展*如果不可能性列表增加了,最多可能会有十几个最大选择*可以将存储更改为nvarchar(100)而不对代码本身进行任何更改

.net c# logic rules

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

Azure Devops Pipeline - 在构建上下文中找不到文件

在 Azure DevOps Pipeline 中出现错误:

Step 7/17 : COPY ["demo6/demo6.csproj", "demo6/"]
COPY failed: file not found in build context or excluded by .dockerignore: stat demo6/demo6.csproj: file does not exist

Run Code Online (Sandbox Code Playgroud)

NOTES-在诊断模式下运行管道并且 .sln 文件存在

##[debug]cwd=/home/vsts/work/1/s
##[debug]  /home/vsts/work/1/s/demo6.sln (file)
##[debug]  /home/vsts/work/1/s/demo6/demo6.csproj (file)
Run Code Online (Sandbox Code Playgroud)

我有一个多项目的 Asp.Net Core 解决方案,文件夹结构和项目如下:

demo6
 |--demo6/demo6.csproj
 |--demo6.api/demo6.api.csproj
Run Code Online (Sandbox Code Playgroud)

该应用程序是 demo6,它引用了 demo6.api,它是一个类库。

这是在 GitHub 中的存储库 demo6。我修改了自动生成的 Dockerfile 以添加额外的 demo6/ 以查看是否有效,但没有。

感谢任何帮助。

Dockerfile 如下:

FROM mcr.microsoft.com/dotnet/aspnet:3.1 AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443

FROM mcr.microsoft.com/dotnet/sdk:3.1 AS build
WORKDIR /src
COPY ["demo6/demo6.csproj", "demo6/"]
RUN …
Run Code Online (Sandbox Code Playgroud)

docker azure-devops azure-devops-pipelines

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

动态加载和卸载使用CSharpCodeProvider生成的dll

我有一个应用程序使用一些代码脚本在运行时生成DLL并根据需要调用它们并在我继续编码之前遇到一些问题!

是否可以在不需要时从内存中卸载它们?如果不是 - 将它们加载到单独的appdomains并使用某些ipc等调用调用会对性能产生什么影响 - 顺便说一下,这需要具有高性能/实时性

或者,如何加载生成的程序集的多个实例(当然使用不同版本的#)?我假设如果你释放所有未使用的引用,它可能会被gc/framework卸载?

还有一个Q - 在这种情况下是否会出现任何"碰撞"(不确定这是否是正确的词?)?

c# code-generation

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

LINQ查询string.replace

在给定任何字符串的地方寻找帮助,返回仅包含字母数字字符的字符串,并用_替换所有非字母数字字符

字符串"ASD @#$ 123"变为"ASD___123"

等等

谢谢

.net c# linq

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