我有一个多语言数据库,它根据键和枚举返回值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) 需要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)
但还是没有运气!
任何建议???
这是我的代码,在项目中广泛使用,我想知道我可以以某种方式重构它,这样我就可以一直避免== null检查吗?
ActiveCompany = admin.Company == null ? false : admin.Company.Active
Run Code Online (Sandbox Code Playgroud)
多谢你们
干杯
我正在为支付提供商进行帖子重定向,并尝试将表单数据传递到他们的安全 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) 我的 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)
有什么建议么?
按照这个主题后我可以创建新行,但我的问题是如何将新行保存或写入文件?
我试过'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) 当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值?
在发送/发布消息时,我无法弄清楚如何在我的任务中指定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)
如您所见,我只能指定队列名称。
我正在尝试使用 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 字符串无关。
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 …
为什么我不能通过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# ×11
asp.net ×2
.net ×1
amazon-s3 ×1
asp.net-core ×1
automapper ×1
csv ×1
databinder ×1
html ×1
kentico ×1
linq ×1
list ×1
masstransit ×1
null ×1
pdf ×1
rabbitmq ×1
sdk ×1
vb.net ×1