小编dkn*_*ack的帖子

确定.NET Core中的操作系统

如何确定运行我的.NET Core应用程序的操作系统?过去我可以使用Environment.OSVersion.

确定我的应用程序是在Mac还是Windows上运行的当前方法是什么?

c# .net-core

93
推荐指数
3
解决办法
4万
查看次数

Type成员的表达式导致不同的表达式(MemberExpression,UnaryExpression)

描述

我有一个表达式指向我的类型的属性.但它并不适用于每种房产类型."不代表"意味着它会导致不同的表达类型.我认为它会导致a MemberExpression但事实并非如此.

对于intGuid它导致一个UnaryExpressionstringMemberExpression.

我有点困惑 ;)

一些示例代码

我的课

public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

测试代码

Person p = new Person { Age = 16, Name = "John" };

Expression<Func<Person, object>> expression1 = x => x.Age;
// expression1.Body = UnaryExpression;

Expression<Func<Person, object>> expression2 = x => x.Name;
// expression2.Body = MemberExpression;
Run Code Online (Sandbox Code Playgroud)

我如何比较两个表达式并检查它们是否意味着相同的类型和相同的属性?

更新,回答并完成示例

感谢用户dasblinkenlight带我走上正轨. …

.net c# lambda expression

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

从响应中获取标题(Retrofit/OkHttp客户端)

我正在使用OkHttp客户端和Jackson进行Json Serialization的Retrofit,并希望得到响应的标题.

我知道我可以扩展OkClient并拦截它.但这是在反序列化过程开始之前.

我基本上需要的是将标题与反序列化的Json对象一起使用.

android json jackson retrofit okhttp

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

工厂模式 - CreateInstance静态与否?

这是关于工厂模式.我有点困惑.

我看到了createInstance()方法是静态的实现和一些非静态的实现.

有人说这取决于"风格"或"味道",有些人说它没有.维基百科说它应该是非静态的,并且http://www.dofactory.com/Patterns/PatternFactory.aspx也表示它应该是非静态的,根据Gang of Four的说法.

我的问题是:它是否依赖于风格和品味,或者它是否违反了工厂模式,如果它是以静态方式实现的?什么是对的?

design-patterns factory factory-method factory-pattern static-factory

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

使用AdoNetAppender的Log4Net - 没有任何反应

描述

我有一个配置文件作为我的程序集中的资源,并希望在我的应用程序中以编程方式更改ConnectionString.

我使用加载配置log4net.Config.XmlConfigurator.Configure.

我有一些断点,看到配置是成功加载的,连接Data Source=localhost\SQLExpress;Initial Catalog=Log;Integrated Security=SSPI;字符串是(本地SQLExpress).

问题

没有任何事情发生,没有例外,没有日志条目.有任何想法吗.

using (Stream stream = System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceStream("MyNamespace.Properties.log4net.config"))
{ 
    // stream is NOT null
    log4net.Config.XmlConfigurator.Configure(stream);
}

Hierarchy hier = LogManager.GetRepository() as Hierarchy;

if (hier != null)
{
    //get ADONetAppender
    var adoAppender = (AdoNetAppender)hier.GetAppenders().Where(appender => appender.Name.Equals("AdoNetAppender", StringComparison.InvariantCultureIgnoreCase)).FirstOrDefault();

    if (adoAppender != null)
    {
        // update connectionstring
        adoAppender.ConnectionString = configuration.GetConnectionString(ConnectionStringNames.Log).ConnectionString;
        //refresh settings of appender
        adoAppender.ActivateOptions(); 
    }
}

ILog logger = LogManager.GetLogger("MyProject"); 
logger.Warn("Test");
Run Code Online (Sandbox Code Playgroud)

log4net.config文件的内容

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, …
Run Code Online (Sandbox Code Playgroud)

c# logging log4net

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

创建"system.net/defaultproxy"配置部分中指定的Web代理时出错

我从第三方应用程序exe收到错误.应用程序只是一个exe,没有配置文件或其他.

"创建'system.net/defaultproxy'配置部分中指定的Web代理时出错"

我该怎么处理?

.net c#

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

加密.NET Core中的字符串

我想使用密钥加密.NET Core中的字符串.我有一个客户端/服务器方案,并希望加密客户端上的字符串,将其发送到服务器并解密它.

由于.NET Core仍处于早期阶段(例如Rijndael尚未推出),我有哪些选择?

c# encryption .net-core

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

如何使用NuGet.Core创建NuGet包?

我想创建一个使用NuGet包NuGet.Core的应用程序.它有一个名为PackageBuilder的类,使其成为可能.有没有可用的样本/教程/文档?

.net c# visual-studio nuget

19
推荐指数
2
解决办法
4694
查看次数

使用System.Double的Assert.AreEqual()变得非常混乱

描述

这不是一个现实世界的例子!请不要建议使用decimal或其他东西.

我只是问这个,因为我真的想知道为什么会这样.

我最近再次与Jon Skeet一起看到了令人敬畏的Tekpub网络广播C#4.0.

在第7- 小数和浮点数它真的很奇怪,甚至我们的 Chuck Norris of Programming(又名Jon Skeet)对我的问题没有真正的答案.只有一个可能.

问题:为什么MyTestMethod()失败并MyTestMethod2()通过?

例1

[Test]
public void MyTestMethod()
{
    double d = 0.1d;
    d += 0.1d;
    d += 0.1d;
    d += 0.1d;
    d += 0.1d;
    d += 0.1d;
    d += 0.1d;
    d += 0.1d;
    d += 0.1d;
    d += 0.1d;

    Console.WriteLine("d = " + d);
    Assert.AreEqual(d, 1.0d);
}
Run Code Online (Sandbox Code Playgroud) 这导致了

d = 1

预期:0.99999999999999989d但是:1.0d …

.net c# floating-point clr c#-4.0

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

ES6承诺/打字稿和蓝鸟承诺

我有一个nodejs/typescript 2项目并使用es6-promise包.现在我想摆脱额外的包,因为我可以直接针对打字稿中的ES6.

所以我删除了es6-promise包并将tsconfig.json更改为目标es6.

{
  "compilerOptions": {
    "target": "es6",
    // ...
  }
}
Run Code Online (Sandbox Code Playgroud)

许多第三方软件包使用Bluebird承诺,但承诺定义与github上不同帖子中所述的默认es6承诺不兼容

所以我收到以下错误.

TS2322:类型'Bluebird'不能分配给'Promise'类型."Bluebird"类型中缺少属性'[Symbol.toStringTag]'.

npm @ types/bluebird-global上还有其他类型的包.在一篇博客文章中,用户建议使用它而不是@ types/bluebird,但是一些第三方软件包(例如,sequelize typings)引用bluebird而不是bluebird-global,所以我得到了蓝鸟缺失的另类错误.

什么是让这个工作的好方法?

javascript typescript ecmascript-6 bluebird

13
推荐指数
2
解决办法
5020
查看次数