小编lep*_*pie的帖子

找不到OWIN HttpListener

当我尝试开始时:

WebApp.Start<SrvcHst>(new StartOptions { Port = 9956, 
     ServerFactory = "Microsoft.Owin.Host.HttpListener" });
Run Code Online (Sandbox Code Playgroud)

我得到以下异常.可能是根本原因?

System.MissingMemberException was caught
  HResult=-2146233070
  Message=The server factory could not be located for the given input: Microsoft.Owin.Host.HttpListener
  Source=Microsoft.Owin.Hosting
  StackTrace:
       at Microsoft.Owin.Hosting.Engine.HostingEngine.ResolveServerFactory(StartContext context)
       at Microsoft.Owin.Hosting.Engine.HostingEngine.Start(StartContext context)
       at Microsoft.Owin.Hosting.Starter.DirectHostingStarter.Start(StartOptions options)
       at Microsoft.Owin.Hosting.Starter.HostingStarter.Start(StartOptions options)
       at Microsoft.Owin.Hosting.WebApp.StartImplementation(IServiceProvider services, StartOptions options)
       at Microsoft.Owin.Hosting.WebApp.Start(StartOptions options)
       at Microsoft.Owin.Hosting.WebApp.Start[TStartup](StartOptions options)
Run Code Online (Sandbox Code Playgroud)

c# exception .net-4.5 owin asp.net-web-api2

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

将StreamReader返回到Beginning

我正在逐行读取文件,我希望能够通过调用方法重新启动读取Rewind().

我怎样才能操纵我的System.IO.StreamReader和/或它的底层System.IO.FileStream来重新阅读文件?

我有一个聪明的想法,FileStream.Seek(long, SeekOffset)用来移动文件,但它没有影响封闭System.IO.StreamReader.我可以Close()重新分配流和读者参考,但我希望有更好的方法.

.net c#

64
推荐指数
4
解决办法
8万
查看次数

在C#6中指定字符串插值的语言环境(Roslyn CTP6)

C#6中的字符串插值让我写:

decimal m = 42.0m;
string x = $"The value is {m}";
Run Code Online (Sandbox Code Playgroud)

但是,字符串格式化的一个非常常见的用例是指定用于格式化值的语言环境.假设我需要InvariantCulture用于上面的格式化操作,那是什么语法?

这个讨论表明我应该能够做到这一点:

string x = INV($"The value is {m}");
Run Code Online (Sandbox Code Playgroud)

其中INV定义为

public static string INV(IFormattable formattable)
{
    return formattable.ToString(null, System.Globalization.CultureInfo.InvariantCulture);
}
Run Code Online (Sandbox Code Playgroud)

但是,这不起作用.它编译,但它启动时我的程序挂在cmd.exe中 - 好像我假设正在调用klr.exe,挂起(编译器错误?)

这是VS15 CTP 6中的ASP.NET 5控制台项目.

c# string-interpolation roslyn c#-6.0

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

获取类型的所有派生类型

是否有更好的(更高性能或更好的代码;)方法来查找类型的所有派生类型?目前即时使用以下内容:

  1. 获取所用类型的所有类型
  2. 如果是'IsAssignable',请检查所有类型的类型

我想知道是否有更好的方式来做这件事?

.net c#

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

从现有类生成接口

我有一个班级:

Class MyClass
{
   public MyClass { ... }
   public string Name { get { ... } }
   public int IdNumber { get { ... } set { ... } }
   public void GenerateNme {...}
}
Run Code Online (Sandbox Code Playgroud)

它只是一个示例类.我希望从中生成Interface.就像,MyClass正在实现IMyClass接口.我希望输出

public Interface IMyClass
{
   string Name { get; }

   int IdNumber { get; set; }

   void GenerateNumber();
}
Run Code Online (Sandbox Code Playgroud)

MyClass : IMyClass
{

}
Run Code Online (Sandbox Code Playgroud)

它可以手动完成,但我只是很想知道,有没有其他简单的方法来完成这个?如果不清楚,请发表评论.

谢谢.

c# visual-studio

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

C#PredicateBuilder实体:参数"f"未绑定在指定的LINQ to Entities查询表达式中

我需要构建一个动态过滤器,我想继续使用实体.由于这个原因,我想使用albahari的PredicateBuilder.

我创建了以下代码:

var invoerDatums = PredicateBuilder.True<OnderzoeksVragen>();
var inner = PredicateBuilder.False<OnderzoeksVragen>();

foreach (var filter in set.RapportInvoerFilter.ToList())
{
    if(filter.IsDate)
    {
        var date = DateTime.Parse(filter.Waarde);
        invoerDatums = invoerDatums.Or(o => o.Van >= date && o.Tot <= date);
    }
    else
    {
        string temp = filter.Waarde;
        inner = inner.Or(o => o.OnderzoekType == temp);
    }
}

invoerDatums = invoerDatums.And(inner);
var onderzoeksVragen = entities.OnderzoeksVragen
                               .AsExpandable()
                               .Where(invoerDatums)
                               .ToList();
Run Code Online (Sandbox Code Playgroud)

当我运行代码时,只有一个过滤器,它不是日期过滤器.因此只有内部谓词被填充.执行谓词时出现以下错误.

参数"f"未绑定在指定的LINQ to Entities查询表达式中.

在搜索答案时,我找到了以下页面.但这已经在LINQKit中实现了.

是否有其他人遇到此错误并知道如何解决?

c# linq-to-entities predicatebuilder

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

根据值删除字典中的项目

我有一个Dictionary<string, string>.

我需要在该字典中查看是否存在基于来自其他地方的输入的值,如果存在则将其删除.

ContainsValue只是说true/false而不是该项的索引或键.

救命!

谢谢

编辑:刚发现这个 - 你怎么看?

var key = (from k in dic where string.Compare(k.Value, "two", true) ==
0 select k.Key).FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)

编辑2:我也只是敲了这个可能有效

foreach (KeyValuePair<string, string> kvp in myDic)
{
    if (myList.Any(x => x.Id == kvp.Value))
        myDic.Remove(kvp.Key);
}
Run Code Online (Sandbox Code Playgroud)

.net c# linq dictionary

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

NSMutableArray按顺序添加对象

我有一个NSMUtableArray元素,例如:

a,b,c,e

我想在d后面c和之前添加一个对象e.换句话说,我想将一个对象插入一个有序数组.(该对象也可以是一个自定义对象)

我想知道:除了for用于找到位置之外,还有其他方法可以实现它吗?最好使用iOS API.

谢谢.

sorting objective-c nsmutablearray

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

"此程序集由比当前加载的运行时更新的运行时构建,无法加载"

我收到错误:"此程序集由比当前加载的运行时更新的运行时构建,无法加载."

我有一个.NET 4.0 dll项目,由.NET 2.0项目调用.有没有办法调和框架中的差异?

c# dll .net-4.0 .net-2.0

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

如何在C#中将字符串与枚举进行比较

string strName = "John";
public enum Name { John,Peter }

private void DoSomething(string myname)
{
case1:
     if(myname.Equals(Name.John) //returns false
     {

     }

case2:
     if(myname == Name.John) //compilation error
     {

     }

case3:
     if(myname.Equals(Name.John.ToString()) //returns true (correct comparision)
     {

     }
}
Run Code Online (Sandbox Code Playgroud)

当我使用.Equals它时是参考比较,当我使用==它时意味着值比较.

是否有更好的代码而不是将枚举值转换ToString()为比较?因为它破坏了值类型枚举的目的而且,ToString()在枚举上被弃用了?

.net c#

49
推荐指数
3
解决办法
6万
查看次数