小编Bob*_*421的帖子

为什么某些 blazor 组件属性以“at”(@) 符号开头?

我不明白为什么某些组件参数参数名称以 开头,@而其他组件名称则不然。

例如:

<MyCustomComponent MyCustomParameter="somevalue" />
Run Code Online (Sandbox Code Playgroud)

<MyCustomComponent @ref="@MyComponent" />
Run Code Online (Sandbox Code Playgroud)

谢谢

blazor blazor-server-side

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

请假和请假有什么区别

我正在尝试反汇编一个包含简单函数的简单程序。该程序是使用 gcc 为 32 位 x86 目标编译的。该函数通过call指令调用。在函数的末尾,我看到一条ret指令,这是正常的,但还有一条leave指令。程序中任何地方都没有输入指令。我想知道这个离开的功能是什么......

gdb elf

6
推荐指数
2
解决办法
8651
查看次数

从elf二进制文件中提取调试符号信息

我们来看看这个基本的c程序:

#include <stdio.h>

int myadd(int a, int b);

int myadd(int a, int b)
{
    return a+b;
}

int main(int argc, char *argv[])
{
    int res = myadd(argc,3);
    printf("%d\n",res);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我想要的是了解调试符号文件的工作原理.

如果我这样编译:

gcc test.c 
Run Code Online (Sandbox Code Playgroud)

我可以在gdb中看到调试符号:

gdb ./a.out
(gdb) disassemble myadd
Dump of assembler code for function myadd:
   0x00000000000006b0 <+0>: push   %rbp
Run Code Online (Sandbox Code Playgroud)

没关系 !

现在,如果我跑:

gcc -s test.c 
Run Code Online (Sandbox Code Playgroud)

这是我在gdb中得到的:

(gdb) disassemble myadd
No symbol table is loaded.  Use the "file" command.
Run Code Online (Sandbox Code Playgroud)

那也没关系,因为我用-s gcc选项剥离了符号.

现在,我想在两个文件中"拆分"我的elf可执行文件: - 剥离的精灵可执行文件 - 外部调试符号文件.

这是我在一些教程中读到的内容:

gcc …
Run Code Online (Sandbox Code Playgroud)

debugging gcc gdb

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

Mysql Entity Framework问题-指定的密钥太长;最大密钥长度为3072字节

当我使用此命令时:

$ dotnet ef database update
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

指定的密钥太长;最大密钥长度为3072字节

导致此错误的表是用于用户管理的内置Microsoft表:

CREATE TABLE `AspNetUserLogins` 
(
    `LoginProvider` varchar(767) NOT NULL,
    `ProviderKey` varchar(767) NOT NULL,
    `ProviderDisplayName` text NULL,
    `UserId` varchar(767) NOT NULL,

    PRIMARY KEY (`LoginProvider`, `ProviderKey`),
    CONSTRAINT `FK_AspNetUserLogins_AspNetUsers_UserId` 
        FOREIGN KEY (`UserId`) REFERENCES `AspNetUsers` (`Id`) 
        ON DELETE CASCADE
);
Run Code Online (Sandbox Code Playgroud)

我试图将其添加到OnModelCreating

modelBuilder.Entity<Utilisateurs>(entity => entity.Property(m => m.NormalizedEmail).HasMaxLength(200));
modelBuilder.Entity<Utilisateurs>(entity => entity.Property(m => m.NormalizedUserName).HasMaxLength(200));
modelBuilder.Entity<IdentityRole>(entity => entity.Property(m => m.NormalizedName).HasMaxLength(200));
modelBuilder.Entity<IdentityUserLogin<string>>(entity => entity.Property(m => m.UserId).HasMaxLength(200));
modelBuilder.Entity<IdentityUserRole<string>>(entity => entity.Property(m => m.UserId).HasMaxLength(200));
modelBuilder.Entity<IdentityUserRole<string>>(entity => entity.Property(m => m.RoleId).HasMaxLength(200));
modelBuilder.Entity<IdentityUserToken<string>>(entity => entity.Property(m …
Run Code Online (Sandbox Code Playgroud)

mysql entity-framework entity-framework-core asp.net-core-mvc asp.net-core-2.0

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

强制routerlink刷新组件

我创建了一个非常基本的角度5应用程序.

我有一个总是显示的左侧菜单(它是带有bootstrap的asp.net core2.0 mvc项目skelton的一部分).

我在此菜单中创建了2个链接:

          <li>
            <a [routerLink]='["/component/1"]'>Component 1</a>
          </li>
          <li>
            <a [routerLink]='["/component/2"]'>Component 1</a>
          </li>
Run Code Online (Sandbox Code Playgroud)

如您所见,2个链接指向相同的路径(相同的组件).我们只是改变了id.这是app.module.ts中的路线

  { path: 'component/:id', component: MyComponent, pathMatch: 'full' },
Run Code Online (Sandbox Code Playgroud)

我在我的组件typescript类中添加了一些日志:

constructor()
{
    console.log("constructor");
}

ngOnInit()
{
    console.log("ngOnInit");
}
Run Code Online (Sandbox Code Playgroud)

如果我点击第一个链接,一切都很好.但是,如果我点击第二个链接,我的组件不会重新加载.没有对构造函数或ngOnInit的调用.如果我点击另一个加载另一个组件的链接,然后返回到第二个链接,它就可以了.

我想要做的是当我点击指向与实际显示的组件相同的组件的链接时,如何强制角度重新加载组件.

谢谢

angular

6
推荐指数
2
解决办法
6485
查看次数

ASLR和PIE的区别

我不太确定了解 ASLR 和 PIE 之间的区别。

在我看来,ASLR 是一个操作系统选项,而 PIE 是一个编译选项。

那么, - 如果我在启用了 ASLR 的操作系统上运行无 PIE 程序会发生什么?- 如果我在禁用 ASLR 的操作系统上运行 PIE 程序会发生什么?

PIE 和 ASLR 是否适用于相同的事物(函数地址、库?)

谢谢

aslr

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

导航属性是否可以为空

看看这个实体:

class EntityA
{
   public int Id { get;set; }
   public string Name { get;set; }
   public int? ClientId { get; set; }

   // Navigation properties:
   public ClientEntity? Client { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,该实体包含一个可选属性:ClientId。这意味着客户端是可选的。在这种情况下,sql server 数据库中的 ClientId 字段将包含 NULL。

我正在使用外键的导航属性:这是“客户端”属性。当 ClientId 为 null 时,Client 也应该为 null。

这就是为什么我声明:“ClientEntity?” 客户端属性的类型。

但我看到有人在相同的情况下声明“ClientEntity”(不可为空)。但我不明白他们如何在这种情况下操纵空客户端......

任何想法 ?

谢谢

linq entity-framework

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

是否可以使用 SignalR 进行后台任务

我正在使用 Microsoft SignalR 来向浏览器推送通知。这些通知是由其他浏览器的操作触发的。我想做一个后台任务,有时会发送通知。例如,在 12:45:21 我想向所有连接的用户发出通知,即使他们什么都不做。有可能这样做吗?

signalr

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

我怎么才能看到垃圾收集器中的内容

我正在学习安全挑战.其中一个挑战是让我检索已经被破坏的数据并保存在内存中直到垃圾收集器触发.

我尝试过很多东西.我想知道是否可以从python控制台转储进程内存.

此外,挑战给我们一个python控制台,但有一个秒表而不是">>>".他们怎么能这样做呢?我只是有一个启动python控制台的ssh访问.

谢谢

python

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

我怎么知道我的系统支持哪个opengl版本

看一下这个非常基本的C ++代码:

if(!glfwInit())
{
    return -1;
}
glfwWindowHint(GLFW_SAMPLES, 4);
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);

window = glfwCreateWindow(640, 480, "Test", NULL, NULL);
if (window==NULL)
{
    return -1;
}
glfwMakeContextCurrent(window);

std::cout << "GL_VERSION: " << glGetString(GL_VERSION) << std::endl;
Run Code Online (Sandbox Code Playgroud)

我不明白我如何“检测”我可以在行中设置的最大opengl版本:

glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
Run Code Online (Sandbox Code Playgroud)

该行不能放置在glfwMakeContextCurrent

glGetString(GL_VERSION)
Run Code Online (Sandbox Code Playgroud)

所以我的问题是我如何在程序开头检测系统支持的opengl版本。

谢谢

opengl glfw

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