小编Dou*_*oid的帖子

使用没有MVC的ASP.NET Core

我想知道是否可以使用没有MVC Core的新ASP.NET核心框架.有没有关于如何在不集成整个MVC框架的情况下实现小型网页的示例?提供简单的路由剃须刀页面?

asp.net-core

17
推荐指数
2
解决办法
5190
查看次数

C++ 11 Singleton.静态变量是线程安全的吗?为什么?

我刚才读到,这个结构:

const bg::AppSettings& bg::AppSettings::GetInstance()
{
    static AppSettings instance;
    return instance;
}
Run Code Online (Sandbox Code Playgroud)

是一个创建单例的线程安全和工作方式?!我是否正确,每次调用此方法时,静态AppSettings变量都是相同的?!我对这个问题的范围有点困惑......

我的正常方法是使用unique_ptr作为我班级的静态成员......但这似乎有用......有人可以向我解释一下,这里发生了什么?!

顺便说一下:const在这里有意义吗?!

c++11

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

ASP.NET Core - 单例注入时存储库依赖项注入失败

我正在使用SoapCore为我的 ASP.NET Core MVC 应用程序创建一个 Web 服务。

我正在使用 Entity Framework Core 和一个简单的 Repository 模式来获取我的数据库数据。

我正在通过.AddSingleton()Startup.cs注入我的存储库类:

services.AddSingleton<IImportRepository, ImportRepository>();
services.AddSingleton<IWebService, WebService>();
Run Code Online (Sandbox Code Playgroud)

由于 EFDbContext是范围的,因此在调用我的 Web 服务时出现错误:

无法从单例“App._Repository.IImportRepository”使用范围服务“App.Data.ApplicationDbContext”。

当我使用.AddScoped()它时,它工作正常。

我读过通过控制器/类构造函数注入作用域依赖项是不好的做法,因为它“回退”为单例或表现得像一个。

我想知道是否有另一种方法可以使其与单身人士一起使用,或者从长远来看这是否有一些主要缺点(大约 100-200 个用户将使用该站点)通过 ctor 在我的控制器中使用范围注入?

c# dependency-injection entity-framework-core asp.net-core-mvc asp.net-core

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

尝试将unique_ptr放入映射时编译错误

我有一个Load-Method来构建我的unique_ptr(稍后将会有多个)以及一个将这些unique_ptr添加到我的无序地图的方法.但是代码没有编译,我猜它与范围有关...

这是代码:

#include <unordered_map>
#include <memory>

class MyClass
{
    public:
        std::string Name;
};

using Map = std::unordered_map<std::string,std::unique_ptr<MyClass>>;


class MyContainer
{
    private:
        Map myMap;
        void AddItem(std::unique_ptr<MyClass> item)
        {
            myMap.emplace("test", item);
        }
    public:
        void LoadItems()
        {
            //Read a file ... do something before etc..
            std::unique_ptr<MyClass> someItem(new MyClass);
            someItem->Name = "FooBar";
            AddItem(someItem);
        }
};
Run Code Online (Sandbox Code Playgroud)

这是g ++错误消息之一:

错误:使用已删除的函数'std :: unique_ptr <_Tp,_Dp> :: unique_ptr(const std :: unique_ptr <_Tp,_Dp>&)[with _Tp = MyClass; _Dp = std :: default_delete]'

让这个工作的最佳方法是什么?我尝试更改AddItem方法的签名,如下所示:

void AddItem(std::unique_ptr<MyClass>& item) //takes a reference now...
Run Code Online (Sandbox Code Playgroud)

这导致了一个真正神秘的错误消息: …

c++ c++11

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

C++类与public:ctor(),它是什么意思?

我偶然发现了这段代码:

class MyClass
{
    public:MyClass();
        void             DoMagic();

    private:
        void             DoRealMagic();

    private:
        int              m_iSomething;
};
Run Code Online (Sandbox Code Playgroud)

我想知道这条线:

public:MyClass();
Run Code Online (Sandbox Code Playgroud)

究竟是什么意思和做法?!我以前从未在C++中看到过这个...好像它与默认的ctor有关?!

c++ constructor c++11

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

异步等待阻塞,有什么问题?

我正在尝试测试.NET的async/await功能.我在LinqPad中设置了一个小测试:

void Main(string[] args)
{
    Test.DoStuff().Wait();
}

// Define other methods and classes here
public class Test
{
    public async static Task DoStuff()
    {
        string s1 = "Hello 1";
        string s2 = "Hello 2";
        var s3 = await Test.Gimme();
        string s4 = "Hello 4";

        Console.WriteLine(s1);
        Console.WriteLine(s2);
        Console.WriteLine(s3);
        Console.WriteLine(s4);
    }

    public async static Task<string> Gimme()
    {
        return await Task.Run<string>(() => RetString());
    }

    public static string RetString()
    {
        Console.WriteLine("Begin");

        for (int i = 0; i < 90000000; i++)
        {
            string s = …
Run Code Online (Sandbox Code Playgroud)

.net c# async-await

0
推荐指数
2
解决办法
272
查看次数

访问unique_ptr向量的迭代器的成员

我有一个矢量:

std::vector<std::unique_ptr<MyAbstract>> myList;
Run Code Online (Sandbox Code Playgroud)

我想在循环中访问成员"id"并删除特定项目:

for (auto it = myList.begin(); it != myList.end();)
{
    if (it->id == 2)
    {
        it = myList.erase(it);
        break;
    }
    else
        ++it;
}
Run Code Online (Sandbox Code Playgroud)

这条线......

if (it->id == 2)
Run Code Online (Sandbox Code Playgroud)

给我一个错误:

'class std :: unique_ptr'没有名为'id'的成员

这似乎有效:

if (it->get()->id == 2)
Run Code Online (Sandbox Code Playgroud)

我想知道为什么?!这是完整的代码:http: //ideone.com/kFohfA

c++ stdvector unique-ptr c++11

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

.Net Core 2.1 Web API同时使用JWT和JWT Cookie

我想将 JWT 存储在 cookie 中,并使用它来验证用户或 HTTP 标头中的不记名令牌。

目前我只使用 HTTP-Auth 标头并且它正在工作。

我尝试像这样使用 Identity Cookies 和 JwT:

[Authorize] //Cookie auth?!
[Authorize(AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme)]
public class ValuesController : ControllerBase
Run Code Online (Sandbox Code Playgroud)

启动.cs:

services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddJwtBearer(...)

...

services.AddIdentity<ApplicationUser, IdentityRole>()
Run Code Online (Sandbox Code Playgroud)

我还尝试在AddAuthentication(). 它不起作用。

我的问题是如何为操作/控制器同时激活 JWT 和 ASP.NET 身份验证。

c# asp.net-core asp.net-core-webapi

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