我在恢复ASP.NET 5/ASP.NET Core 1.0的依赖项时遇到错误.
似乎有几个依赖项(即Microsoft.CodeAnalysis.CSharp
/ .Common
)Microsoft.AspNet.Mvc
被修复为看似过时的软件包.
对此的要求是使用dotnet
cli工具并以.NET Vanilla和.NET Core为目标.
有没有办法让Mvc引用Core兼容的CodeAnalysis版本?
在Visual Studio 2015中重现的步骤(v14.0.24729.00 Update 1):
dotnet restore
输出:
info : Restoring packages for C:\PATH_TO_SOLUTION\WebApplication2\src\WebApplication2\project.json...
error: Microsoft.CodeAnalysis.CSharp 1.1.0-rc1-20151109-01 is not compatible with DNXCore,Version=v5.0.
error: Microsoft.CodeAnalysis.Common 1.1.0-rc1-20151109-01 is not compatible with DNXCore,Version=v5.0.
error: Some packages are not compatible with DNXCore,Version=v5.0.
error: Microsoft.CodeAnalysis.CSharp 1.1.0-rc1-20151109-01 is not compatible with DNXCore,Version=v5.0 (win7-x64).
error: Microsoft.CodeAnalysis.Common 1.1.0-rc1-20151109-01 is not compatible with …
Run Code Online (Sandbox Code Playgroud) 来自 actix-web 的一个例子如下:
use actix_web::{web, App, Responder, HttpServer};
async fn index() -> impl Responder {
"Hello world!"
}
#[actix_rt::main]
async fn main() -> std::io::Result<()> {
HttpServer::new(|| {
App::new().service(
web::scope("/app").route("/index.html", web::get().to(index)),
)
})
.bind("127.0.0.1:8088")?
.run()
.await
}
Run Code Online (Sandbox Code Playgroud)
我的问题是关于该语句to(index)
在 Rust 中是如何工作的。
查看源代码,to
我们看到:
pub fn to<F, T, R, U>(mut self, handler: F) -> Self
where
F: Factory<T, R, U>,
// --- snip
Run Code Online (Sandbox Code Playgroud)
其中Factory
定义为:
pub trait Factory<T, R, O>: Clone + 'static
where …
Run Code Online (Sandbox Code Playgroud) 我试图找到一个负数的立方根,但我得到一个NaN.有帮助吗?
System.out.println(Math.pow(-8, 1.0 / 3.0));
Run Code Online (Sandbox Code Playgroud) 如果我有,例如以下List<int>
s
{ 1, 2, 3, 4 } //list1
{ 2, 3, 5, 6 } //list2
...
{ 3, 4, 5 } //listN
Run Code Online (Sandbox Code Playgroud)
检索以下相应List<int?>
s 的最佳方法是什么?
{ 1, 2, 3, 4, null, null } //list1
{ null, 2, 3, null, 5, 6 } //list2
...
{ null, null, 3, 4, 5, null } //listN
Run Code Online (Sandbox Code Playgroud) 是否有任何标准的C#类型或库用于精确的理性算术,如除法?
十进制不是我需要的:
1m/3m + 1m/3m + 1m/3m != 1
Run Code Online (Sandbox Code Playgroud)
我正在考虑存储两位小数,分子和分母的东西,并完全执行乘法和除法.这可以在需要时简化分数并显式转换为double或decimal.
我正在尝试在C#中创建一个泛型方法,它将根据其主体中的参数数据类型调用不同的方法,然后处理它们的结果.我试图通过创建一个通用的包装器方法来实现这一点,然后提供处理方法的几个重载 - 包括一个通用的,如果没有特定的重载可用.
当我直接调用处理方法时,正确选择了适当的版本.但是当我从包装器方法调用它时,它总是选择泛型方法,即使我传递给它的特定数据类型存在匹配的重载.
有没有办法调整代码使其行为符合我的需要?或者我必须使用不同的方法.
我需要代码与Mono 2.6兼容.
using System;
class Program
{
static void Func<T>(T val)
{
Console.WriteLine("Generic Func");
}
static void Func(int val)
{
Console.WriteLine("Int Func");
}
static void Func(string val)
{
Console.WriteLine("String Func");
}
static void FuncWrap<T>(T val)
{
Console.Write("Wrap: ");
Func(val);
}
static void Main(string[] args)
{
Func(2);
Func("Potato");
Func(2.0);
FuncWrap(2);
FuncWrap("Potato");
FuncWrap(2.0);
Console.Read();
}
}
Run Code Online (Sandbox Code Playgroud) 我只是花了几个小时被一个NullReferenceException
我认为不应该有的地方弄糊涂了.我正在构建一个类似的类:
public class MyClass : MyBase<Foo>
{
public MyClass()
{
base.Method(Foo.StaticField);
}
}
Run Code Online (Sandbox Code Playgroud)
哪里
public class MyBase<T>
{
private SomeObject bar = new SomeObject();
public void Method(object o)
{
this.bar.AnotherMethod(o); // exception thrown here
}
}
Run Code Online (Sandbox Code Playgroud)
基本上我的IL如下:
ctorIl.Emit(OpCodes.Ldarg_0);
ctorIl.Emit(OpCodes.Ldsfld, staticField);
ctorIl.Emit(OpCodes.Box, typeof(FieldType));
ctorIl.Emit(OpCodes.Call, parentMethod);
ctorIl.Emit(OpCodes.Ret);
Run Code Online (Sandbox Code Playgroud)
我终于想到它一定bar
是没有被实例化的.我在C#中构建了我的类并编译它,发现唯一的区别是以下应该高于上面的IL:
ctorIl.Emit(OpCodes.Ldarg_0);
ctorIl.Emit(OpCodes.Call, parentCtor);
// as above
Run Code Online (Sandbox Code Playgroud)
使用这些行,我的代码现在可以按预期工作.
所以我的问题是:
当我尝试绑定到System.Type.Name时,这是我遇到的异常.
这是我正在做的事情:
this.propertyTypeBindingSource.DataSource = typeof(System.Type);
/* snip */
this.nameTextBox1.DataBindings.Add(
new System.Windows.Forms.Binding(
"Text",
this.propertyTypeBindingSource,
"Name", true));
Run Code Online (Sandbox Code Playgroud)
是否有一些绑定到System.Type的技巧,是不允许的还是有任何解决方法?绑定到其他类型没有问题.
我刚刚发现(发现一个错误)你可以这样做:
string s = "3";
int i;
int.TryParse(s = "hello", out i); //returns false
Run Code Online (Sandbox Code Playgroud)
是否合法使用赋值的返回值?
(显然i++
是,但这是一样的吗?)
我正在编写一个批处理文件,要从Visual Studio中的预构建事件执行.
如何将输出错误,警告和消息输出到Visual Studio错误列表?
搜索这个很难,因为大多数事情都是如何修复错误而不是抛出它们!
c# ×7
math ×2
.net-core ×1
actix-web ×1
asp.net ×1
asp.net-core ×1
asp.net-mvc ×1
batch-file ×1
build-events ×1
cil ×1
data-binding ×1
dotnet-cli ×1
generics ×1
java ×1
linq ×1
mono ×1
polymorphism ×1
rust ×1