小编Bre*_*ton的帖子

如何在C#中声明一个对象数组

我有一个非常开始的C#问题.假设我有一个名为的类GameObject,我想创建一个GameObject实体数组.我可以想到编写如下代码:

GameObject[] houses = new GameObject[200];
Run Code Online (Sandbox Code Playgroud)

编译器抱怨(假设语法无效).由于这是XNA开发,我在LoadContent()方法中加载我的纹理如下:

 houses[0].Model = Content.Load<Model>("Models\\Building_01 Windowed");
Run Code Online (Sandbox Code Playgroud)

这里houses[0]应该是一个GameObject和可以加载这样的,但是编译器会引发这个错误:

"使用"new"关键字创建对象实例"

"在调用方法之前检查以确定对象是否为null"

我的初始化肯定有问题.

c#

48
推荐指数
4
解决办法
28万
查看次数

无法在Windows窗体设计器上使用鼠标移动控件

我最近安装了Visual Studio 2013 Professional,发现在Windows窗体应用程序项目类型中,我无法在设计模式下移动窗体上的任何控件.我测试了几个替代品,发现了以下内容:

  • 可以使用键盘移动控件
  • 可以通过拖动控件轮廓上的关键点来调整控件的大小
  • 可以使用"工具"菜单中的命令对齐控件
  • 可以通过Location在设计器属性网格中手动设置字段来移动控件
  • 控件可以停靠
  • 无法使用鼠标移动控件

此外,如下图所示,在任何控件上都看不到指示控件可移动的"交叉"图标.

表单中没有可见的十字图标

我尝试了以下内容,但尚未能解决问题:

  • 创建了一个新项目和解决方案(同一期)
  • 创建了一个新表单(同一个问题)
  • 验证Locked表单和控件的属性设置为False
  • 验证表单是否继承Form(正如预期的那样,这是标准安装,也是我第一次使用它)
  • 用Google搜索帮助(没有任何效果)

任何建议,将不胜感激.

c# visual-studio winforms visual-studio-2013

35
推荐指数
4
解决办法
3万
查看次数

如何使用字符串而不是文件提供Boost.PropertyTree?

Boost有一个关于如何从文件加载XML教程.如何使用我在代码中创建或从用户接收的字符串(例如with cin)来提供它?

c++ xml boost input boost-propertytree

17
推荐指数
3
解决办法
9736
查看次数

ASP.NET Core中的MD5CryptoServiceProvider

我有一个数据库,其中包含在旧身份系统中创建的密码.使用MD5CryptoServiceProvider该类对密码进行哈希处理.我现在需要在ASP.NET MVC Core中使用这些密码,但MD5CryptoServiceProvider不存在.

在.NET Framework中,我用来计算哈希的函数是:

public static string CreateHash(string unHashed)
{
    var x = new System.Security.Cryptography.MD5CryptoServiceProvider();
    var data = Encoding.ASCII.GetBytes(unHashed);
    data = x.ComputeHash(data);
    return Encoding.ASCII.GetString(data);
}
Run Code Online (Sandbox Code Playgroud)

我在ASP.NET Core中尝试了以下两个函数:

public static string CreateHash(string unHashed)
{
    var x = new System.Security.Cryptography.HMACMD5();
    var data = Encoding.ASCII.GetBytes(unHashed);
    data = x.ComputeHash(data);
    return Encoding.ASCII.GetString(data);
}
Run Code Online (Sandbox Code Playgroud)

public static string MD5Hash(string input)
{
    using (var md5 = MD5.Create())
    {
        var result = md5.ComputeHash(Encoding.ASCII.GetBytes(input));
        var strResult = BitConverter.ToString(result);
        return strResult.Replace("-", "");
    }
}
Run Code Online (Sandbox Code Playgroud)

这两个方法都没有返回 …

c# encryption asp.net-core

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

是否有Angular2方法专注于输入字段?

在方法结束时,我将清除一些字段,这很容易:

this.modelname.fieldname1 = "";
this.modelname.fieldname2 = "";
Run Code Online (Sandbox Code Playgroud)

清除字段后,我希望光标出现在field1.

有没有Angular2方法来做到这一点,或者我只是使用旧式的Javascript?

typescript angular

6
推荐指数
3
解决办法
3万
查看次数

MediatR 和 SimpleInjector 的依赖范围问题

我一直在使用实体框架进行数据访问的 WinForms 应用程序中使用MediatR库来尝试中介模式和 CQRS。该应用程序用于批次制造工厂,允许用户查看活动批次和已完成批次的列表,并在必要时更新批次信息。每个批次都有大量与之相关的信息,例如质量和过程测量。根据以下文章,读取和写入数据被组织为查询和命令:

同时......在我的架构的查询方面

带有 MediatR 和 AutoMapper 的 CQRS

这是查询和查询处理程序的简单示例。DataContext使用 SimpleInjector 注入到查询处理程序中。

public class GetAllBatchesQuery: IRequest<IEnumerable<Batch>> { }

public class GetAllBatchesQueryHandler :
    IRequestHandler<GetAllBatchesQuery, IEnumerable<Batch>>
{
    private readonly DataContext _context;

    public GetAllBatchesQueryHandler(DataContext context)
    {
        _context= context;
    }

    public IEnumerable<Batch> Handle(GetAllBatchesQueryrequest)
    {
        return _db.Batches.ToList();
    }
}
Run Code Online (Sandbox Code Playgroud)

这将从演示者处调用,如下所示:

var batches = mediator.Send(new GetAllBatchesQuery());
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是 DbContext 的生命周期。理想情况下,我希望每个独立事务使用一个实例,在本例中将包括以下内容:

  • 从数据库中检索批次列表
  • 检索批次的质量指标列表(这些指标存储在不同的数据库中并通过存储过程访问)
  • 更新批次,这可能包括更新数据库中的多个实体

这将引导我走向 DbContext 的范围内或短暂的生活方式。但是,当使用瞬态生活方式时,SimpleInjector 会引发以下错误,该错误在注册类型时抛出,如下所示:

container.Register<DataContext>();
Run Code Online (Sandbox Code Playgroud)

SimpleInjector.dll 中发生“SimpleInjector.DiagnosticVerificationException”类型的未处理异常

附加信息:配置无效。报告了以下诊断警告:

-[一次性瞬态组件] DataContext 注册为瞬态,但实现 IDisposable。

在 SimpleInjector 网站上研究这个问题会发现以下注释

警告:容器不跟踪瞬态实例。这意味着简单注入器不会处理瞬态实例。 …

c# entity-framework mediator simple-injector mediatr

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

Chart DataBinding to DataTable - 图表未更新

我正试图将a数据绑定Chart到a DataTable.我希望图表在添加时显示新行,但是当向表中添加新行时,图表不会更新.我已经验证了两者tabletableDataSource包含新行,但从chart.Series["TestTable"].Points.Count不更改5.

基于问题的示例代码无法将数据表绑定到Chart Control,如下所示.我想知道下面的代码是否有错误或遗漏,或者是一种实现相同目标的不同的更好的方法.我知道如何手动添加点到a Series,但我想看看如何使用数据绑定来做到这一点.

Random r = new Random();
Timer timer = new Timer();
DataTable table = new DataTable("TestTable");
DateTime date = new DateTime(2013, 1, 1);
IList tableDataSource = null;

void timer_Tick(object sender, EventArgs e)
{
    table.Rows.Add(date, r.NextDouble());
    date = date.AddDays(1);

    chart.Update();
}

void MainForm_Load(object sender, EventArgs e)
{
    table.Columns.Add("Date", typeof(DateTime));
    table.Columns.Add("Percent", typeof(double));

    for (int i = 0; i < 5; i++)
    {
        table.Rows.Add(date, r.NextDouble()); …
Run Code Online (Sandbox Code Playgroud)

c# data-binding charts winforms

4
推荐指数
1
解决办法
3万
查看次数

反复减小div的宽度

<div>每次调用JavaScript函数时,我都需要将特定的宽度缩小50px.

我试过了

document.getElementById("Zivot").style.width = "100px";
Run Code Online (Sandbox Code Playgroud)

但这只是设置宽度,而不是添加或减去它.

html javascript html5 css3

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

加载MvcModule类型的模块"Ninject.Web.Mvc.MvcModule"时出错

我正在构建一个ASP.NET MVC5 Web应用程序,使用Ninject.MVC5进行DI.我正在尝试将NinjectWebCommon类移动到一个单独的类库项目中.我能够通过使用以下代码成功完成此操作:

private static IKernel CreateKernel()
{
    var kernel = new StandardKernel();
    try
    {
        // Uncomment to move this file to a separate DLL
        kernel.Load("MyWebApp.dll");
        kernel.Bind<Func<IKernel>>().ToMethod(ctx => () => new Bootstrapper().Kernel);
        kernel.Bind<IHttpModule>().To<HttpApplicationInitializationHttpModule>();

        RegisterServices(kernel);
        return kernel;
    }
    catch
    {
        kernel.Dispose();
        throw;
    }
}
Run Code Online (Sandbox Code Playgroud)

在上面的代码中,MyWebApp.dll是主Web应用程序程序集的文件名.这有效,但要求我硬编码对Web应用程序DLL的引用.我在官方文档中读到,以下内容可以用于自动加载以这种方式分离的解决方案中的所有 DLL:

kernel.Load(AppDomain.CurrentDomain.GetAssemblies());
Run Code Online (Sandbox Code Playgroud)

但是,如果我使用此代码而不是硬编码引用,我会收到以下异常(在throw上面的行中捕获并重新抛出):

An exception of type 'System.NotSupportedException' occurred in
MyWebApp.Infrastructure.dll and wasn't handled before a managed/native boundary

Additional information: Error loading module 'Ninject.Web.Mvc.MvcModule' of
type MvcModule
Run Code Online (Sandbox Code Playgroud)

任何人都可以提供有关此处发生的事情的一些信息,以及如何在避免对其他程序集进行硬编码引用的同时防止发生此异常?

c# asp.net asp.net-mvc ninject ninject.web.mvc

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

使用 Process.Start 运行程序时,找不到其资源文件

我有这个代码:

private void button1_Click(object sender, EventArgs e)
{
    Process p = new Process();
    p.StartInfo.FileName = "C:/Users/Valy/Desktop/3dcwrelease/3dcw.exe";
    p.Start();
}
Run Code Online (Sandbox Code Playgroud)

3dcw.exe是一个用于 OpenGL 图形的应用程序。

问题是,当我单击按钮时,可执行文件会运行,但无法访问其纹理文件。

有没有人有办法解决吗?我想在后台加载位图文件,然后运行exe文件,但我该怎么做呢?

c# graphics process

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