小编KJS*_*JSR的帖子

从外部将值传递给AutoMapper Type Converter

我有一个多语言数据库,它根据键和枚举返回值Language.当我将DB对象转换为模型时,我希望模型包含基于键和当前语言的翻译值.

密钥来自DB对象,但如何将当前语言传递给Mapper.Map()函数?

目前,我正在使用一个[ThreadStatic]属性在调用之前设置文化Mapper.Map<>,并在中检索它TypeConverter.

public enum Language
{
    English, French, Italian, Maltese
}

public class MultilingualValue<T>
{
    public Dictionary<Language, T> Value { get; set; }
    public MultilingualValue()
    {
        this.Value = new Dictionary<Language, T>();
    }
}

public class PersonData
{
    public string FirstName { get; set; }
    public MultilingualValue<string> City { get; set; }
}

public void MapPerson()
{
    PersonData personData = new PersonData();
    personData.FirstName = "John";
    personData.City = new MultilingualValue<string>();
    personData.City.Value[ …
Run Code Online (Sandbox Code Playgroud)

c# automapper

15
推荐指数
1
解决办法
7614
查看次数

使用Html Agility Pack从HTML BODY节点提取内部文本

需要HTML Agility Pack的帮助!

基本上我想用HTML的正文节点获取纯文本.到目前为止,我已经在vb.net中尝试了这个并且它无法返回innertext意味着没有看到任何变化,至少从我能看到的内容.

Dim htmldoc As HtmlDocument = New HtmlDocument
htmldoc.LoadHtml(html)

Dim paragraph As HtmlNodeCollection = htmldoc.DocumentNode.SelectNodes("//body")

If Not htmldoc Is Nothing Then
   For Each node In paragraph
       node.ParentNode.RemoveChild(node, True)
   Next
End If

Return htmldoc.DocumentNode.WriteContentTo
Run Code Online (Sandbox Code Playgroud)

我试过这个:

Return htmldoc.DocumentNode.InnerText
Run Code Online (Sandbox Code Playgroud)

但还是没有运气!

任何建议???

html c# vb.net html-agility-pack

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

如何避免==空检查?

这是我的代码,在项目中广泛使用,我想知道我可以以某种方式重构它,这样我就可以一直避免== null检查吗?

 ActiveCompany = admin.Company == null ? false : admin.Company.Active
Run Code Online (Sandbox Code Playgroud)

多谢你们

干杯

c# null

10
推荐指数
2
解决办法
286
查看次数

发布重定向到带有发布数据的 URL

我正在为支付提供商进行帖子重定向,并尝试将表单数据传递到他们的安全 URL。

我在 kentico 8 中使用他们的自定义支付网关方法执行此操作,如下所示https://docs.kentico.com/display/K8/Creating+a+custom+payment+gateway

因此,在自定义支付类中,我准备了使用本教程以“表单”格式传递给支付提供商的数据http://www.codeproject.com/Articles/37539/Redirect-and-POST-in -ASP-NET

但是我无法弄清楚如何使用表单数据重定向到安全 URL?

到目前为止,这是我的代码。

我尝试过 Response.Redirect 但它是一个 GET 函数而不是 POST。

using System;
using System.Collections;
using System.Collections.Specialized;
using System.Configuration;
using CMS;
using CMS.Base;
using CMS.EcommerceProvider;
using CMS.Helpers;
using System.Security.Cryptography;
using System.Web;
using System.Web.Security;
using System.Text;
using System.IO;
using System.Net;
using System.Web.UI;


[assembly: RegisterCustomClass("CustomGateway", typeof(CustomGateway))]

public class CustomGateway : CMSPaymentGatewayProvider
{


/// <summary>
/// Process payment.
/// </summary>
public override void ProcessPayment()
{        
    // Get payment gateway url

    string url = "https://epage.payandshop.com/epage.cgi";
    if …
Run Code Online (Sandbox Code Playgroud)

c# kentico

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

Asp.Net Core 未找到 DefaultChallengeScheme

我的 Asp.Net Core API 项目中有一个自定义项AuthorizationHandler,它根据 .net 文件中传递的令牌来授权请求Headers​​。

工作Handler正常,因为它在运行时调用,但是出现以下错误

InvalidOperationException:未指定authenticationScheme,并且未找到DefaultChallengeScheme。

我已Startup.cs按如下方式注册了我的设置:

public void ConfigureServices(IServiceCollection services)
{
    services.AddAuthentication(IISDefaults.AuthenticationScheme);
    services.AddSingleton<IAuthorizationHandler, TokenAuthorizationHandler>();
}

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    app.UseAuthentication();
    app.UseMvc();
}
Run Code Online (Sandbox Code Playgroud)

有什么建议么?

c# authentication asp.net-core

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

编辑/保存CSV文件中的行

按照这个主题后我可以创建新行,但我的问题是如何将新行保存或写入文件?

我试过'StreamWriter',但它只写了新创建的行.

有什么建议吗?

到目前为止,这是我的代码:

string path = @"C:/CSV.txt";

string[] lines = File.ReadAllLines(path);

var splitlines = lines.Select(l => l.Split(','));

foreach (var line in splitlines)
{
   if(line[1].Contains("34"))
   {                                        
     line[1] = "100";
     var newline = string.Join(",", line);
     StreamWriter sr = new StreamWriter(path);    
     sr.WriteLine(newline);
     sr.Close();                                      
   }
 }
Run Code Online (Sandbox Code Playgroud)

c# csv asp.net

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

DataBinder.Eval数据项为空

当DataItem为空时,我无法确定如何隐藏','.

基本上,我有表行显示注册地址并使用以下技术填充:

<%# DataBinder.Eval(Container.DataItem, "Address_Line_1" )%>,
<%# DataBinder.Eval(Container.DataItem, "Address_Line_2")%>,
<%# DataBinder.Eval(Container.DataItem, "TOWNLAND")%>,                          
<%# DataBinder.Eval(Container.DataItem, "CITY")%>,
<%# DataBinder.Eval(Container.DataItem, "STATE")%>,
Run Code Online (Sandbox Code Playgroud)

现在,如果上面的一个或多个DataItem返回为Empty,则在前端显示为

地址1 ,,, CITY ,,

我尝试了以下隐藏逗号(','),但我一直收到错误说

在'If'语句的第一行缺少')'

<%#IIf(IsDBNull(DataBinder.Eval(Container.DataItem, "STATE")) OrElse 

String.IsNullOrEmpty(DataBinder.Eval(Container.DataItem, "STATE")) , "" , 

DataBinder.Eval(Container.DataItem, "STATE") & ",")%>
Run Code Online (Sandbox Code Playgroud)

我不确定我的'if'陈述是错还是不能如上所述?

任何人都有关于上述或任何其他隐藏逗号的替代方法的建议,如果是NULL值?

c# asp.net databinder

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

MassTransit RabbitMq 发送消息

在发送/发布消息时,我无法弄清楚如何在我的任务中指定Exchange和?QueueGetSendEndpoint())

根据 MassTransit 文档https://masstransit-project.com/usage/producers.html#send您可以指定交换和队列

GetSendEndpoint(new Uri("queue:input-queue"))
Run Code Online (Sandbox Code Playgroud)

但是,我只能做一个或另一个?

是否有指定交换和队列的替代发送方式?

我在 Asp.Net Core 中这样做,所以这是我的配置:

启动文件

public void ConfigureServices(IServiceCollection services)
{
   services.AddMassTransit();

   services.AddSingleton(p => Bus.Factory.CreateUsingRabbitMq(cfg =>
   {
         cfg.Host("rabbitmq://localhost", h =>
         {
             h.Username("admin");
             h.Password("admin");
         });
   }));

   services.AddSingleton<IBus>(p => p.GetRequiredService<IBusControl>());
   services.AddSingleton<IHostedService, BusService>();
}
Run Code Online (Sandbox Code Playgroud)

这就是发送消息的方式

var endpoint = await _bus.GetSendEndpoint(new Uri(queue:Test.Queue));
await endpoint.Send(new Message()
{
     Text = "This is a test message"
});
Run Code Online (Sandbox Code Playgroud)

如您所见,我只能指定队列名称。

c# masstransit rabbitmq

4
推荐指数
2
解决办法
3173
查看次数

如何使用 PutObjectAsync 通过 dotnet SDK 将 base64 pdf 上传到 S3

我正在尝试使用 dotnet SDK 将 base64 pdf 上传到 S3。文件正在上传,但显示为空白 pdf。我错过了什么吗?

我认为问题可能与我上传的方式有关?我尝试过仅使用 illustrationDocumentBody 并将其作为字节发送。illustrationDocumentBody 本身上传文件,但当我尝试在 S3 中查看它时,我无法加载 pdf。

try
{
      await s3Client.PutObjectAsync(new PutObjectRequest
      {
                ContentBody = System.Text.Encoding.UTF8.GetString(Convert.FromBase64String(illustrationDocumentBody)),
                ContentType = "application/pdf",
                BucketName = Environment.GetEnvironmentVariable("ESIS_SYNC_BUCKET"),
                Key = $"Opportunities/{oppName}/ESIS-{brokerName}-{productCode}-{customerName}.pdf",
                CannedACL = S3CannedACL.BucketOwnerFullControl
      });
}
catch (AmazonS3Exception e)
{
      Console.WriteLine(
                    "Error encountered ***. Message:'{0}' when writing an object", e.Message);
}
catch (Exception e)
{
      Console.WriteLine(
                "Unknown encountered on server. Message:'{0}' when writing an object", e.Message);
}
Run Code Online (Sandbox Code Playgroud)

我希望能够查看 PDF,但它上传的是空白 PDF。Sendgrid 也使用 base64 字符串作为电子邮件发送,并且它正在工作,所以我认为它与 base64 字符串无关。

.net c# pdf sdk amazon-s3

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

Returning Default Value from List&lt;&gt; when match is not found

I am trying to find a cleaner way of returning a default value when there is no match found. An example I have written to best demonstrate my question is shown below from LinqPad

So basically if given Age is not found in the list SingleOrDefault returns a null as normal. So instead of returning a null I pick the highest Threshold from the regardless of what the Age value is.

However instead of doing if or using ?? (null …

c# list

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

为什么我无法在LINQ Select()查询中向StringBuilder插入值

为什么我不能通过LINQ Select()查询将列表中的字符串值插入StringBuilder ?

给定下面的代码,我希望构建的字符串结尾为,{CBA}但实际上是{}

我想念什么?

var testList = new List<string>
{
   "A",
   "B",
   "C"
};

var testStringBuilder = new StringBuilder("{}");
testList.Select(y => testStringBuilder.Insert(1,y));
Run Code Online (Sandbox Code Playgroud)

c# linq stringbuilder

0
推荐指数
1
解决办法
95
查看次数