小编Ale*_*lex的帖子

显式默认构造函数

此代码与GCC 5.X,MSVC编译良好,但GCC 6.X给出错误:

"从初始化列表转换为'a'将使用显式构造函数'a :: a()'",clang "选择的构造函数在复制初始化中是显式的".

删除explicit或更改以a c{}解决问题,但我很好奇为什么它以这种方式工作.

class a
{
public:
    explicit a () {}
};
struct b
{
    a c;
};

int main() {
    b d{};
}
Run Code Online (Sandbox Code Playgroud)

c++ language-lawyer c++11 c++14

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

LiveCharts的基础知识 - 如何画线?

我很难理解LiveCharts究竟应该发生什么.我在这里有一块XAML:

<Grid>
    <Grid.Background>
        <ImageBrush ImageSource="/CPF;component/Images/background-top-cropped2.png" Stretch="None"></ImageBrush>
    </Grid.Background>
    <lvc:CartesianChart Series="{Binding myData}" LegendLocation="Right" x:Name="myChart">
        <lvc:CartesianChart.AxisY>
            <lvc:Axis Title="Sales" LabelFormatter="{Binding YFormatter}"></lvc:Axis>
        </lvc:CartesianChart.AxisY>
        <lvc:CartesianChart.AxisX>
            <lvc:Axis Title="Month" Labels="{Binding Labels}"></lvc:Axis>
        </lvc:CartesianChart.AxisX>
    </lvc:CartesianChart>
</Grid>
Run Code Online (Sandbox Code Playgroud)

和代码在这里:

public MainWindow()
{
    InitializeComponent();
    DrawGraphs();
}
public void DrawGraphs()
{
    LineSeries mySeries = new LineSeries
    {
        Values = new ChartValues<int> { 12, 23, 55, 1 }
    };

    myChart.Series.Add(mySeries);
}
Run Code Online (Sandbox Code Playgroud)

在运行时,'myChart.Series.Add(mySeries)'会抛出Null Reference Exception错误.我不确定如何解决这个问题?

.net c# wpf xaml livecharts

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

空间类型实体框架核心SQL Server

我需要处理地理距离.

我有

public class Clinic
{
    ...
    public double Latitude
    public double Longitud
    ...
}
Run Code Online (Sandbox Code Playgroud)

该诊所位于SQL Server DB上.我需要将它们按距离排列到某一点.对于我读到的内容,Entity Framework Core不支持DbGeography或类似于表示SQL Server类型的东西:

geography
Run Code Online (Sandbox Code Playgroud)

我在数据库中添加了一个列,其中包含每个诊所的计算地理点

UPDATE Clinics SET Geo = geography::Point(Clinics.Latitude, Clinics.Longitud,4326)
Run Code Online (Sandbox Code Playgroud)

好的,知道我需要退回订购.SQL通过查询支持此功能

DECLARE @p geography;
SET @p = geography::Point(41,2,4326);
SELECT * FROM Clinics c ORDER BY @p.STDistance(c.Geo);
Run Code Online (Sandbox Code Playgroud)

和Entity Framework Core支持使用原始SQL进行查询.

context.Clinics.FromSql("..query..")
Run Code Online (Sandbox Code Playgroud)

正如FromSql的文档所说,如果您返回的数据与模型不完全匹配,那么它就会崩溃.就像在C#中我不能有代表Geo的DbGeography我无法弄清楚如何解决这个问题.

编辑1:

部分使用以下内容:

string rawSQL = @"
        DECLARE @p geography;
        SET @p = geography::Point(41,2,4326);
        SELECT c.Id, c.Name, c.Price, c.Quote, c.QuoteAuthor, c.QuoteSource, c.Description, c.Image, c.Latitude, c.Longitude, c.Category, c.CenterDistance, c.NumReviews, c.Stars
        FROM …
Run Code Online (Sandbox Code Playgroud)

c# sql-server entity-framework entity-framework-core

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

限制对在运行时CSharpCodeProvider生成的代码仅允许的名称空间的访问

我正在使用本指南在我的程序中创建脚本平台.

我想沙箱他们被允许做什么和不做什么.

我有一些名称空间,我只想让代码使用它,而且几乎不允许其他所有内容.

在运行时从自定义代码编译的程序集通过我找到的代码链接到主程序:

foreach (Assembly assembly in AppDomain.CurrentDomain.GetAssemblies())
{
    try
    {
        string location = assembly.Location;
        if (!String.IsNullOrEmpty(location))
        {
            parameters.ReferencedAssemblies.Add(location);
        }
    }
    catch (NotSupportedException)
    {
        // this happens for dynamic assemblies, so just ignore it. 
    }
}
Run Code Online (Sandbox Code Playgroud)

因此mods(运行时动态生成的代码)可以与主程序通信.

由于我的知识和研究有限,我似乎需要创建自定义AppDomain并使用PermissionSet,但我不确定如何实现这一点.

c# unity-game-engine

6
推荐指数
0
解决办法
228
查看次数

.net Web API密码加密方法

我使用上面给出的教程开发了一个.net示例应用程序

https://docs.microsoft.com/en-us/aspnet/web-api/overview/security/individual-accounts-in-web-api

在此示例应用程序中,使用用户名和密码注册新用户时,密码将被加密并存储在DB表中.我需要知道默认使用哪种加密方法.

我可以将其配置为使用任何其他加密方法而不是默认提供的吗?

对于Ex:如果默认加密方法是SHA256,如何配置它以使用SHA512?

c# asp.net authentication asp.net-mvc asp.net-web-api

6
推荐指数
0
解决办法
1142
查看次数