在C#中,你做这样的事情:
if (Changed != null)
Changed(this, EventArgs.Empty);
Run Code Online (Sandbox Code Playgroud)
但是你在VB.NET中做了什么?
有RaiseEvent,但是
RaiseEvent Changed(Me, EventArgs.Empty)
Run Code Online (Sandbox Code Playgroud)
实际上检查某事已订阅该事件?
我使用共享文件来保持公司名称、版权、版本……在解决方案中的所有项目之间保持同步。该文件还包含
[assembly: CLSCompliant(true)]
Run Code Online (Sandbox Code Playgroud)
我需要将我的 DLL 标记为符合 CLS。在 asp.net Web 表单应用程序中,与 Default.aspx 关联的类称为 _Default,它不符合 CLS,并会生成警告。
将类重命名为 Default 似乎没问题。有什么缺点吗?为什么这个类被称为_Default?
我protected override void OnFormClosing(FormClosingEventArgs e)在我的一些代码和代码分析中给出了一个CA1062,因为我不检查是否e为null.
公约EventArgs永远不应该是空的; 这就是为什么我们有EventArgs.Empty.当然,我可能是愚蠢的,null而不是EventArgs.Empty在提出一些事件时,但在这里它将是一些自动生成的代码,将提升FormClosing事件,所以我只是抑制警告.
是否存在一些可能导致EventArgs被框架置空而不是由程序员引起的极端情况?
我想在 ASP.NET Core 网站中执行一些报告,该网站使用相同的架构从多个数据库读取数据。
我Startup.cs需要有类似的东西:
public void ConfigureServices(IServiceCollection services)
{
// Some other stuff here.
services.AddDbContext<MyContext>(options => options.UseSqlServer(Configuration.GetConnectionString("FirstConnectionString")));
services.AddDbContext<MyContext>(options => options.UseSqlServer(Configuration.GetConnectionString("SecondConnectionString")));
}
Run Code Online (Sandbox Code Playgroud)
但现在 DbContext 是同一类型并且没有名称,那么如何选择我想要在控制器中使用的 DbContext?
public class HomeController : Controller
{
private readonly MyContext context;
public HomeController(MyContext context)
{
// Is that the one with FirstConnectionString or SecondConnectionString?
// How do I choose?
this.context = context;
}
}
Run Code Online (Sandbox Code Playgroud)
编辑:
我可能错过了一些东西,但MyContext我有:
public class MyContext : DbContext
{
public MyContext(DbContextOptions<MyContext> options) : base(options)
{
}
// Some …Run Code Online (Sandbox Code Playgroud)