小编Fer*_*X32的帖子

访问静态类上的配置/设置 - Asp Core

我有3个解决方案.Project.Web,Project.Core(Business)和Project.Layer(Models).

在Project.Core中,我有一个静态文件,我可以Business.GetAllData();从Project.Web.Controller中调用它.

这会调用DAL/EF文件并获取data(BusinessDal.GetData()).

        using (DBContext db = new DBContext())
        {
            return db.GetAllData().ToPOCO();
        }
Run Code Online (Sandbox Code Playgroud)

在我的配置/ DbContext.cs上,我有这个:

protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
    #if DEBUG
        optionsBuilder.UseSqlServer(@"connstring");
    #else
        optionsBuilder.UseSqlServer(@"connstring");
    #endif
    // How do I access configuration here? Configuration["ConnectionString"]
}
Run Code Online (Sandbox Code Playgroud)

我想要做的是从我的appsettings.json读取设置.我确保在startup.cs上正确加载了设置

public Startup(IHostingEnvironment env)
{
    var builder = new ConfigurationBuilder()
        .SetBasePath(env.ContentRootPath)
        .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
        .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true)
        .AddEnvironmentVariables();
    Configuration = builder.Build();
}
Run Code Online (Sandbox Code Playgroud)

但现在是什么?... MS Document显示了如何从控制器读取它.这部分工作正常,我可以在控制器上读取我的设置.但是,我不知道如何将它传递给另一个项目,仍然可以从静态类中调用它.

c# asp.net-core-mvc .net-core asp.net-core

11
推荐指数
2
解决办法
8338
查看次数

C# - DataGridView - 同一行上的图像和文本

我在DataGridView上寻找类似的东西:

Image  | Text | 
Text   | Text |
Image  | Text
Run Code Online (Sandbox Code Playgroud)

基本上,我只想在同一行上的图像单元格和文本单元格.我能够使用不同的类型,例如:复选框,文本等...但我无法使它与图像一起工作.

我收到此错误: Invalid Cast from 'System.String' to 'System.Drawing.Image'

有人知道解决方案或有关我应该怎么做的建议吗?谢谢

.net c# datagridview winforms

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

Section Scripts或常规<script>取决于请求类型

我有一个场景,我想根据请求类型加载脚本.例如,假设我有这样的代码:

@section scripts {
<script>
    $('#tabsContainer').InitializeTabs();
</scripts>
}
Run Code Online (Sandbox Code Playgroud)

当我想加载整页时,这加载完全正常.但是,我有一个用户可以部分加载页面的东西.场景是这样的:

public ActionResult Page() {
if (Request.IsAjax()) return PartialView();
return View()
}
Run Code Online (Sandbox Code Playgroud)

问题是,如果它被部分加载,脚本不起作用,因为@section脚本不能部分工作.如果我把它放在section脚本之外,它不能在完整视图上工作,因为我的脚本在底部,并且它正在尝试在加载实际的JavaScript文件之前运行脚本.

我想知道实现这个的好方法.我可以在页面顶部移动我的脚本,这应该可以解决所有问题.我也可能有2个不同的脚本,但这可能意味着我必须编写两次相同的代码.

有谁知道实现这个的好方法?也许是一个Html帮助程序,它根据请求类型在@section脚本{}或常规脚本标记中加载脚本?

基本上,写这个的正确方法是什么:

@if (!Request.IsAjaxRequest())
{
    <text>
    @section scripts
    {
        <script>
            $(function () {
                $("#tabs").tabs();
            });
        </script>
    }
    </text>
}
else
{
    <text>
        <script>
            $(function () {
                $("#tabs").tabs();
                ga('set', 'page', '/new-page.html'); // Update Google Analytics
            });
        </script>
    </text>
}
Run Code Online (Sandbox Code Playgroud)

在此先感谢您的帮助.

asp.net-mvc razor asp.net-mvc-5

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

使用react框架时node_modules文件过多

当我使用 React 框架并执行 a 时npm install,我的 node_modules 上会生成大约 27,000 个文件。大小不是问题,而是文件的数量。如果我必须将该目录复制到其他地方,由于文件太多,需要很长时间。如果我必须删除它,那也需要很长时间。我的 Google 驱动器同步没有 node_modules 的“排除文件夹”选项,因此,与云同步也需要很长时间。我也不喜欢我拥有的每个 React 项目都会生成另外 27,000 个文件。

有人有解决方案吗?基本上,我不希望我创建的每个 React 项目都有 27,000 个文件。我正在考虑在某处只拥有一个全局 node_modules,所有 React 应用程序都会调用它,而不是创建自己的 node_modules 文件夹。

这是我的 package.json

{
  "name": "react-typescript-tutorial",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    "axios": "^0.18.0",
    "enzyme": "^3.3.0",
    "react": "^16.4.1",
    "react-bootstrap": "^0.32.1",
    "react-dom": "^16.4.1",
    "react-redux": "^5.0.2",
    "react-router-dom": "^4.3.1",
    "react-router-redux": "^5.0.0-alpha.9",
    "redux": "^4.0.0",
    "redux-thunk": "^2.3.0"
  },
  "scripts": {
    "start": "react-scripts-ts start",
    "build": "react-scripts-ts build",
    "test": "react-scripts-ts test --env=jsdom",
    "eject": "react-scripts-ts eject"
  }
}
Run Code Online (Sandbox Code Playgroud)

PS …

node.js npm node-modules reactjs npm-install

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

C# 使用安全/权限设置将文件夹复制到另一个目的地

我正在制作一个程序,它可以复制文件夹并将其传输到另一个位置,包括属性、权限、安全设置。

到目前为止,我已经使用了 Attribution,但在权限/安全设置方面遇到了问题。这是我的代码:

Directory.CreateDirectory(Destination);
DirectoryInfo DestAttribute = new DirectoryInfo(Destination);
DestAttribute.Attributes = Source.Attributes; // Copies Attributes from Source to Dest

AuthorizationRuleCollection Rule;
DirectorySecurity DestSecurity = Source.GetAccessControl();
Rule = DestSecurity.GetAccessRules(true, true, typeof(NTAccount));
DestSecurity.AddAccessRule(Rule);
DestAttribute.SetAccessControl(DestSecurity);
Run Code Online (Sandbox Code Playgroud)

任何人有任何建议让这个工作?谢谢大家的帮助。

.net c# directory copy visual-studio-2010

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

具有默认功能和其他功能的 Javascript 对象

我正在尝试为某些东西创建自己的插件,但是在第一步时遇到了问题。我想要一个可以将参数作为默认值并在其中包含其他功能的对象。请查看下面的示例,了解我正在尝试完成的工作。

var a = function(str) { console.info(str); }
a = {
    Test: function() { console.info(TestMessage()); },
    TestMessage: function() { return "Test Message"; }
}
Run Code Online (Sandbox Code Playgroud)

基本上,我想要我可以使用参数自行调用的父对象。一个测试”); 同时,我希望该父对象中的其他函数也可以访问该对象中的其他函数。a.Test() -> 调用 a.TestMessage(),但是,不必写“a”。每次在该对象内部时。

javascript

5
推荐指数
2
解决办法
1907
查看次数

将 .Net Core 发布到 IIS - 进程无法访问文件

我正在使用 FTP 将我的 ASP .Net Core 2.0 应用程序部署到我的远程服务器。远程服务器正在使用 IIS 8。当我发布我的应用程序时,出现以下错误。

Unable to add 'Project.dll' to the Web site.  The process cannot access the file because it is being used by another process (550).
Run Code Online (Sandbox Code Playgroud)

我能够通过app_offline.htm在发布目录上手动创建第一个,然后通过 Visual Studio 2017 发布我的应用程序来绕过这个。

我想知道,有没有更简单的方法来做到这一点?或者是否有一种简单的方法可以编写脚本,以便在发布之前自动创建 app_offline ?然后发布后删除?

iis .net-core asp.net-core

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

交叉线程,访问除了它之外的线程

我正在努力学习交叉/多线程,但我对这个概念非常困惑.我做了一个示例应用程序,假设通过一个线程在label.text上显示i.它不起作用,因为我试图访问除了创建之外的其他线程,我已经研究了很多,我仍然对Invoking,Delegation等感到困惑......这是我的代码:

private void s1_Click(object sender, EventArgs e)
{
    Thread Thread1 = new Thread(new ThreadStart(Start1));
    Thread1.Start();
}

public void Start1()
{
    for (int i = 0; i < 1000; i++)
    {
        displaytext("Working.........", i);
        Thread.Sleep(100);
    }
}

public void displaytext(string thetext, int number)
{
    t1.Text = thetext + " " + number;
}
Run Code Online (Sandbox Code Playgroud)

让这个工作的好方法是什么?任何帮助是极大的赞赏.我正在学习这种对编程的热爱.

c# multithreading thread-safety c#-2.0

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

ASP 核心:使用 AddIISUrlRewrite 时 URL 重写不起作用

我正在尝试为以下 3 个条件重写我的 URL:1. 删除 .php 扩展名 2. 删除 .html 扩展名 3. 将所有“www”重定向到非 www

我试图使用 ASP Core 的 Rewrite 包并运行以下代码:

app.UseRewriter(new RewriteOptions().AddIISUrlRewrite(env.WebRootFileProvider, "files/IISUrlRewrite.xml"));
Run Code Online (Sandbox Code Playgroud)

在文件/IISUrlRewrite.xml 上,我有以下代码:

<rewrite>
  <rules>
    <rule name="RemovePHP">
      <match url="^(.*).php$" />
      <action type="Rewrite" url="{R:1}" />
    </rule>
    <rule name="RemoveHTML">
      <match url="^(.*).html" />
      <action type="Rewrite" url="{R:1}" />
    </rule>
    <rule name="www to non-www" stopProcessing="true">
      <match url="(www.*)" negate="false"></match>
      <action type="Redirect" url="http://example.com/{R:1}"></action>
      <conditions>
        <add input="{HTTP_HOST}" pattern="^example\.com$" negate="true"></add>
      </conditions>
    </rule>
  </rules>
</rewrite>
Run Code Online (Sandbox Code Playgroud)

但是,这是行不通的。www 没有被重定向,.php 没有被删除。当我把它放在我的 web.config 文件中时,这段代码工作正常。

另外,我知道我可以使用中间件Microsoft 文档:Url Rewriting做同样的事情

感谢您的帮助。

c# url-rewriting asp.net-core-mvc asp.net-core

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

来自参数的通用T而不是手动指定

我写了这堂课:

public class ResultsPair<T>
{
    public T Value { get; set; }
    public ResultsItem Result { get; set; }

    public ResultsPair(ResultsItem result, T value)
    {
        Result = result;
        Value = value;
    }

    public static ResultsPair<T> Create(ResultsItem result, T value)
    {
        return new ResultsPair<T>(result, value);
    }

    public static ResultsPair<T> CreateSuccess(T value) => Create(ResultsItem.Success(string.Empty), value);
    public static ResultsPair<T> CreateError(ResultsItem result) => Create(result, default(T));
}
Run Code Online (Sandbox Code Playgroud)

要打电话给我,我会这样做:

ResultsPair<User>.CreateSuccess(newUser);
ResultsPair<User>.CreateError(ResultsItem.Error("A server connection error has occured."));
Run Code Online (Sandbox Code Playgroud)

在第一个,newUser是User类型,所以我不想使用<User>再次手动定义它.

在CreateError上,我没有问题手动定义T类,因为默认情况下它不会知道它.

在Create方法上,我需要这样做ResultsPair<User>.Create(ResultsItem, User).我不喜欢哪个.ResultsPair.Create(ResultsItem, User)应该够了.

有没有办法让它实现我想要的? …

c# generics

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