小编AFr*_*act的帖子

在C#中通过引用传递属性

我正在尝试做以下事情:

GetString(
    inputString,
    ref Client.WorkPhone)

private void GetString(string inValue, ref string outValue)
{
    if (!string.IsNullOrEmpty(inValue))
    {
        outValue = inValue;
    }
}
Run Code Online (Sandbox Code Playgroud)

这给了我一个编译错误.我认为我很清楚我想要实现的目标.基本上我想GetString将输入字符串的内容复制到WorkPhone属性Client.

是否可以通过引用传递属性?

c# properties pass-by-reference

214
推荐指数
4
解决办法
11万
查看次数

在Asp.net Core中设置CultureInfo有一个.作为CurrencyDecimalSeparator而不是,

我疯了.我只想将整个Asp.net核心应用程序中使用的文化设置为"en-US".但似乎没有任何效果.我在哪里设置整个应用程序的文化?我对客户端浏览器文化并不感兴趣.唯一似乎改变它的是改变Windows的语言设置.我只是希望从应用程序本身而不是客户端确定文化.

到目前为止我尝试了什么:

  • <system.web><globalization uiCulture="en" culture="en-US" /></system.web>在web.config中设置
  • 设置System.Threading.Thread.CurrentThread.CurrentCulture = cultureInfo;CurrentUICulture在Startup.Configure中,甚至在控制器中.
  • 使用app.UseRequestLocalization(..如下所示

        var enUsCulture = new CultureInfo("en-US");
        var localizationOptions = new RequestLocalizationOptions()
        {
            SupportedCultures = new List<CultureInfo>()
            {
                enUsCulture
            },
            SupportedUICultures = new List<CultureInfo>()
            {
                enUsCulture
            },
            DefaultRequestCulture = new RequestCulture(enUsCulture),
            FallBackToParentCultures = false,
            FallBackToParentUICultures = false,
            RequestCultureProviders = null
        };
    
        app.UseRequestLocalization(localizationOptions);
    
    Run Code Online (Sandbox Code Playgroud)

但似乎没有任何东西可以将CurrencyDecimalSeparator从(nl-NL)更改为(en-US).

如何设定文化?

编辑: @soren这是configure方法的样子.我已经设置了一个断点,DetermineProviderCultureResult但在访问该网站时它从未被击中过.

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory, FinOsDbContext context)
    {
        loggerFactory.AddConsole(Configuration.GetSection("Logging"));
        loggerFactory.AddDebug();

        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage(); …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-core

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

在编辑器中对枚举项进行排序

有人知道在代码编辑器中对枚举项进行排序的方法,例如使用resharper或其他VS加载项(即按字母顺序或按整数值对项目进行排序)?

在一个项目中,我有一些带有未排序标签的巨大枚举,并且对于对它们进行排序的可读性将是有帮助的.

编辑:只是为了指出,因为很多人提到,如果没有明确的值,我完全知道在编译时分配给枚举项的"自动值".

为了更清楚一点,有两个例子:

public enum Colors
{
/// <summary>
/// Yellow color
///</summary>
Yellow, 
/// <summary>
/// Green color
///</summary>
Green, 
/// <summary>
/// Blue color
///</summary>
Blue,
/// <summary>
/// Red color
///</summary>
Red
}
Run Code Online (Sandbox Code Playgroud)

- >我们可能想按字母顺序重新排序.由于没有明确定义,因此不使用允许的整数值.

另一个例子 :

  public enum Colors
    {
    /// <summary>
    /// Yellow color
    ///</summary>
    Yellow = 3, 
    /// <summary>
    /// Green color
    ///</summary>
    Green = 1, 
    /// <summary>
    /// Blue color
    ///</summary>
    Blue = 2,
    /// <summary>
    /// Red color
    ///</summary>
    Red = …
Run Code Online (Sandbox Code Playgroud)

c# resharper visual-studio-2008 visual-studio

13
推荐指数
2
解决办法
3293
查看次数

Visual Studio 2022 的 Razor 代码格式问题

使用 Visual Studio 2022(跨多个次要/补丁版本)和 ReSharper 2021.3,我在 Razor (.cshtml) 视图中遇到 C# 标记的格式问题。

\n

鉴于以下现有代码:

\n

前

\n

如果我输入Ctrl+ K+D(格式化整个文档),Visual\xc2\xa0Studio 会产生以下结果:

\n

后

\n

HTML 标签格式很好,但 Razor 标签格式更难阅读,特别是对于底部的嵌套 lambda。

\n

我尝试了不同的方法,但我无法在 Visual\xc2\xa0Studio 设置或 ReSharper 设置中找到正确的选项来管理这些规则。

\n

resharper visual-studio razor

9
推荐指数
1
解决办法
7864
查看次数

谷歌我的业务 - 更新场所开放时间的API?

我想通过自动API(例如REST服务)更新我公司Google公司所有商店的"营业时间".

我的客户有数百家商店,目前这是手工完成的.

我已经读过没有自动化的方法,用户需要在谷歌我的商业门户网站的每个开放时间手动填写.

我无法相信,我想知道有很多商店的大公司如何处理这个问题,特别是"特殊关闭"等等.我已经搜索了很长时间,但没有找到任何东西.

谷歌提供的唯一功能是通过文件上传商店列表,而且此文件不包含任何有关营业时间的信息(我错了吗?).我希望能够通过API(我的商家或地方)定期更新商店列表和营业时间.

谷歌是否提出了这样的API,或者您是否有任何建议从程序化的角度来处理这个问题?

谢谢

google-api google-places-api

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

如何强制重新加载NLog配置文件?

我正在使用NLog和配置文件。为了避免在长时间的治疗中记录太多的东西,我正在做这种事情:

 foreach (LoggingRule rule in LogManager.Configuration.LoggingRules) 
 {
      rule.DisableLoggingForLevel(LogLevel.Trace);   
      rule.DisableLoggingForLevel(LogLevel.Debug);   
 }
 LogManager.ReconfigExistingLoggers();
Run Code Online (Sandbox Code Playgroud)

它允许我暂时降低日志记录的详细程度。上面的几行仅是一个示例。这似乎完美地工作。

之后,我想通过重新加载已在程序启动时自动加载的NLog.Config文件来恢复“常规”日志记录配置。我试过了 :

LogManager.Configuration.Reload();
LogManager.ReconfigExistingLoggers();
Run Code Online (Sandbox Code Playgroud)

我认为这很容易,但是配置。Reload并没有达到我的期望,也没有找到其他合适的方法。调用之后,在程序启动时,我的记录器仍然不存储跟踪和调试事件。

所以我的问题是:如何以编程方式在运行时强制重新加载NLog.config并恢复我的“标准”记录器设置?

谢谢

问题更详细的更新:

我使用的是VS2013,.Net 4 projet和NLog 4.4.0-beta11(测试版,但最后一次使用nuget),在配置文件中使用minLevel = Trace和autoReload = True定义了简单的“文件”目标

在类级别实例化的Logger:私有静态只读Logger Logger = LogManager.GetCurrentClassLogger();

这是我的测试证据:

    Assert.True(Logger.IsTraceEnabled);
    Assert.True(Logger.IsDebugEnabled);

    Logger.Trace("1 - This should appear in log");
    Logger.Debug("2 - This should appear in log");

    foreach (LoggingRule rule in LogManager.Configuration.LoggingRules)
    {
        rule.DisableLoggingForLevel(LogLevel.Trace);
        rule.DisableLoggingForLevel(LogLevel.Debug);
    }
    LogManager.ReconfigExistingLoggers();

    Logger.Trace("3 - This should NOT appear in log");
    Logger.Debug("4 - This should NOT appear in log");
    Logger.Info("5 …
Run Code Online (Sandbox Code Playgroud)

.net c# logging nlog

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

Appropriate content for Myapp..runtimeconfig.json configuration file for a .Net 4.7 app on Azure

I'm new with Azure and a bit confused by a few things. I am unable to have my MVC Core application working properly on it.

The app is a MVC .Net Core 2.1 application, targetting .Net 4.7.2 framework (not .Net Core), with a rather complex dependency graph.

With local IIS Express, it works perfectly, and it also works when I publish it with Visual Studio on local IIS instance (with AspNetCoreModule installed).

But when I try to publish it on …

.net asp.net azure asp.net-core-mvc azure-web-app-service

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

.Net 5.0 中的 Endpoint.Behaviors 和 clientRuntime.MessageInspectors 在哪里?

对于 4.8 之前的所有 .Net 版本,可以使用 WCF 轻松捕获用于日志记录目的的 SOAP 服务的所有传入和传出流量,IEndpointBehavior / IClientMessageInspector如下所述,例如: https: //learn.microsoft.com/en -us/dotnet/api/system.servicemodel.dispatcher.iclientmessageinspector.beforesendrequest?view=netframework-4.8

我想知道如何恢复此状态,或者在 .Net 5.0 中实现与以前相同的目的。我需要在日志文件中跟踪所有 SOAP 交换,以前我只需要做:

public void AfterReceiveReply(ref System.ServiceModel.Channels.Message reply, object correlationState)
{
    _logger.Debug("Reply received: " + Environment.NewLine + "{0}", reply.ToString());
}
public object BeforeSendRequest(ref System.ServiceModel.Channels.Message request, IClientChannel channel)
{
    _logger.Debug("Sending request: " + Environment.NewLine + "{0}", request.ToString());
    return null;
}
Run Code Online (Sandbox Code Playgroud)

要使其正常工作,您需要 clientRuntime.MessageInspectors 和 client.Endpoint.Behaviors 来注册类。

尽管我已经注册了可用于 System.ServiceModel 的 nuget 包,尤其是 System.ServiceModel.Primitives.dll,但这些属性似乎不再存在。

.net c# wcf .net-4.0 .net-5

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

使用 Entity Framework Core 在 LINQ 查询中将字符串转换为日期时间

使用 EF Core 5 和 SQL Server,我试图弄清楚如何转换存储为 LINQ 查询中的字符串的日期(在 SQL Server 端)。

我已经搜索过,EF.Functions但我无法找到这种日期解析的正确方法。

我也试过Convert.ToDateTimeand DateTime.Parse,但它们似乎都没有 LINQ 翻译。

直接的 SQL 等效项是Convert(datetime, mycolumn, 102). 如果微软没有做任何事情来支持像原生 SQL 这样简单易用的东西,我会很惊讶,所以如果我错过了一些明显的东西,我很抱歉,但我已经在网上搜索过,并在投降之前做了一些尝试。

PS:请注意,我知道在应用 Where() 或修改数据库(或创建视图)以更改列类型之前调用 ToList() 等解决方法。

我的问题主要是:如何用EF调用 Convert(datetime, mycolumn, 102)

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

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