gpt4 book ai didi

asp.net - 找不到类型或命名空间名称 'Func<,>'(是否缺少 using 指令或程序集引用?

转载 作者:行者123 更新时间:2023-12-05 02:15:32 26 4
gpt4 key购买 nike

下面是我从在线教程中找到的示例,用于托管起诉 OWIN 的网站,但是当我尝试在我的机器上运行时,我得到了这个错误

CS0246 找不到类型或命名空间名称“Func<,>”(是否缺少 using 指令或程序集引用?)

我认为对于“Func<,>”,我使用了 System,而对于 IDictionary,我使用了 System.Collections.Generic;所以我不明白为什么它仍然无法工作。

using System;
using System.Collections.Generic;
using System.IO;
using System.Text;
using System.Threading.Tasks;
using Microsoft.Owin;
using Owin;
using AppFunc = Func<IDictionary<string, object>, Task>;


public class Startup
{
public void Configuration(IAppBuilder app)
{
var middleware = new Func<AppFunc, AppFunc>(MyMiddleWare);

app.Use(middleware);
app.Use<OtherMiddleware>();
}

public AppFunc MyMiddleWare(AppFunc next)
{
AppFunc appFunc = async (IDictionary<string, object> environment) =>
{
var response = environment["owin.ResponseBody"] as Stream;
byte[] str = Encoding.UTF8.GetBytes("My First Middleware");
await response.WriteAsync(str, 0, str.Length);

await next.Invoke(environment);
};
return appFunc;
}

public class OtherMiddleware : OwinMiddleware
{
public OtherMiddleware(OwinMiddleware next) : base(next) { }

public override async Task Invoke(IOwinContext context)
{
byte[] str = Encoding.UTF8.GetBytes(" Other middleware");
context.Response.Body.Write(str, 0, str.Length);

await this.Next.Invoke(context);
}
}
}

最佳答案

您需要将 AppFunc 放在类中,以便它可以使用 using,或者您可以为 FuncIDictionaryTask

使用完整的命名空间
using System;
using System.Collections.Generic;
using System.IO;
using System.Text;
using System.Threading.Tasks;
using Microsoft.Owin;
using Owin;

// Use this
using AppFunc = System.Func<System.Collections.Generic.IDictionary<string, object>, System.Threading.Tasks.Task>;


public class Startup
{
// Or this
using AppFunc = Func<IDictionary<string, object>, Task>;

...
}

关于asp.net - 找不到类型或命名空间名称 'Func<,>'(是否缺少 using 指令或程序集引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51657738/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com