小编And*_*ews的帖子

可选的参数代码在.NET 3.5中编译.为什么?

这段代码在VS 2010中的框架3.5项目中编译好了(我三重检查了)

    public LoggingClient(string uri = "net.msmq://localhost/logging"){...}
Run Code Online (Sandbox Code Playgroud)

为什么?我什么也看不到在C#4规格(DOC版),第21.1节,是说,这应该是向后兼容.怎么没有编译错误?在某些情况下,这会无声地失败吗?

.net c# optional-parameters c#-4.0

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

LINQ to Entities在SQL 2005 Express上生成包含datetime2的查询

我有一个LINQ to Entities应用程序和一个数据库项目来管理针对.NET 4.0的VS 2010解决方案中的架构.目前,实体模型是从数据库中进行逆向工程的.其中一个表定义了一个datetime类型的列.数据库项目配置为使用SQL Server 2005兼容模式,因此它都可以正常部署.

我刚刚遇到一个问题,通过实体框架的更新语句似乎使用datetime2而不是datetime,这会导致异常,因为SQL 2005不支持该数据类型:

System.Data.UpdateException: An error occurred while updating the entries. 
See the inner exception for details. ---> System.ArgumentException: The version 
of SQL Server in use does not support datatype 'datetime2'.
Run Code Online (Sandbox Code Playgroud)

从堆栈跟踪显示错误似乎发生在:

System.Data.Mapping.Update.DynamicUpdateCommand
Run Code Online (Sandbox Code Playgroud)

我查看了所有SQL代码和实体代码,并确认datetime2没有引用(包括dbschema文件).我只能得出结论,数据类型是在实体框架生成的动态SQL查询中生成的.

我怎样才能确认或否认这一点,以及如何阻止它发生?实体框架不知道我已经要求db项目以2005兼容性模式为目标,并且我看不到一种方法来指出它正在查看的版本.为了它的价值,我在安装了2008 Express的机器上创建了这个项目,但我定期切换到另一台没有(并且还不能升级)的机器.

.net compatibility linq-to-entities sql-server-2005

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

Pod 与绑定本地持久卷的主机节点的关联性

我正在开发 k8s 的裸机实例,并且正在尝试使用 k8s v1.14 的本地持久卷。目的是允许我使用postgres-operator创建 HA postgres 部署。由于我使用的是裸机,因此我无法使用动态 PVC,这在教程中似乎是正常的。

首先,我创建了一些绑定到主机节点上手动创建的卷的 PV。PV 使用 分配nodeAffinity给特定节点。即primary-volPV 被分配给node1, 并被replica-vol-1分配给node2等等。

然后,我使用 PVC 将我的 pod 绑定到 PV,如此处所述

我发现 k8s 调度程序已将我的 pod(绑定到 上的 PV node1)放置在node2而不是node1我预期的位置。

有没有办法在 pod 上使用亲和力来确保 pod 是在与其绑定的 PV相同的节点上创建的?

编辑:简化问题(向各地的艺术家和建筑师致歉

当 Pod 甚至不知道它绑定到哪个 PV 时,它如何知道 PV 被分配到哪个节点?

当 Pod 甚至不知道它绑定到哪个 PV 时,它如何知道 PV 被分配到哪个节点?

kubernetes

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

VS Code 开发容器和企业代理

我正在尝试在公司代理后面(在 VPN 上)运行 VS Code .NET 5.0 开发容器。遗憾的是,每次启动容器时,我都无法下载/安装 OmniSharp 扩展。

这是我得到的:

Installing C# dependencies...
Platform: linux, x86_64, name=ubuntu, version=20.04

Downloading package 'OmniSharp for Linux (x64)'     Retrying from 'https://roslynomnisharp.blob.core.windows.net/releases/1.37.10/omnisharp-linux-x64-1.37.10.zip' Failed at stage: downloadPackage
Error: connect ECONNREFUSED 127.0.0.1:9000
Run Code Online (Sandbox Code Playgroud)

具体来说,我有一个在本地运行的 zscaler 副本localhost:9000。我可以直接(在 Chrome 中)下载 OmniSharp 包的链接,没有任何问题。我尝试将代理 URL 添加到开发容器 Dockerfile,但没有成功。

ENV HTTPS_PROXY="http://127.0.0.1:9000/localproxy.pac"
ENV HTTP_PROXY="http://127.0.0.1:9000/localproxy.pac"
Run Code Online (Sandbox Code Playgroud)

Docker 声称正在使用 WSL 子系统,并且从 Ubuntu 容器中我可以很好地访问外部世界,所以我不确定下一步要尝试什么。有任何想法吗?

proxy omnisharp visual-studio-code vscode-devcontainer

5
推荐指数
0
解决办法
984
查看次数

C#和javascript中guid的相同哈希值

我有一个问题,我需要能够在javascript和C#中为GUID生成相同的均匀分布的数字哈希.我想这会阻止我Guid.GetHashCode()在C#中使用,因为如果不对C#进行逆向工程,我无法重现JS中的行为.

有一种快速的方法可以在JS中使用guids/strings产生哈希吗?字符串的所有数字是否均匀分布在.NET生成的GUID中?我应该将尾随字符转换/转换为int吗?

javascript c# hash guid

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

升级到VS 2010后,Team City构建失败

我有一个项目,目前使用VS 2010(可能使用MSBUILD v4.0)在我的开发机器上愉快编译,但它在Team City中的MSBUILD v3.5下运行(在基于Win 2003服务器w/.NET 2的VM上运行) ,3.5和4安装).该项目新升级到2010年,现在CI构建失败了.我用Google搜索了这一切并尝试了一切显而易见的事情(加上一些没有意义的事情)并且没有任何影响结果.

该项目失败,出现一系列错误,如下所示:

error CS0234: The type or namespace name 'Linq' does not exist in the namespace 'System' (are you missing an assembly reference?)
Run Code Online (Sandbox Code Playgroud)

解决方案中有许多其他项目使用System.Core,System.Data.Linq和System.Xml.Linq,它们似乎都没有问题地编译.有问题的项目是一个Web应用程序,它的配置/ system.web/compilation/assemblies部分中包含以下设置:

    <add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
    <add assembly="System.Data.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
    <add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
    <add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
Run Code Online (Sandbox Code Playgroud)

在同一个文件中加上以下内容:

<system.codedom>
  <compilers>
    <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" warningLevel="4">
      <providerOption name="CompilerVersion" value="v3.5"/>
      <providerOption name="WarnAsError" value="false"/>
    </compiler>
  </compilers>
</system.codedom>
Run Code Online (Sandbox Code Playgroud)

有问题的项目是IIRC,我解决方案中唯一一个既是WebApplication也正在由PostSharp(v1.5)进行后期处理的项目.PostSharp在.csproj中配置如下:

<PropertyGroup>
  <DontImportPostSharp>True</DontImportPostSharp>
  <PostSharpUseCommandLine>True</PostSharpUseCommandLine>
</PropertyGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" …
Run Code Online (Sandbox Code Playgroud)

postsharp visual-studio-2010 .net-3.5 teamcity-5.1

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