我知道有一些问题可以解决这个问题,但答案通常遵循推荐字典或参数集合的方式,这在我的情况下不起作用.
我正在使用一个通过反射工作的库,用具有属性的对象做很多聪明的事情.这适用于已定义的类以及动态类.我需要更进一步,按照这些方针做一些事情:
public static object GetDynamicObject(Dictionary<string,object> properties) {
var myObject = new object();
foreach (var property in properties) {
//This next line obviously doesn't work...
myObject.AddProperty(property.Key,property.Value);
}
return myObject;
}
public void Main() {
var properties = new Dictionary<string,object>();
properties.Add("Property1",aCustomClassInstance);
properties.Add("Property2","TestString2");
var myObject = GetDynamicObject(properties);
//Then use them like this (or rather the plug in uses them through reflection)
var customClass = myObject.Property1;
var myString = myObject.Property2;
}
Run Code Online (Sandbox Code Playgroud)
该库适用于动态变量类型,手动分配属性.但是我不知道预先添加了多少或哪些属性.
是否有现有的库在.NET中呈现车把模板?
我想将此作为模板引擎,供用户创建HTML电子邮件模板
我花了几个小时看,但似乎找不到任何东西.一个包装好的javascript渲染模型可以,但更好的本地库.
否则,是否有类似的模板引擎更适合.NET环境?
我希望将Noda时间用于一个相当简单的应用程序,但是我很难找到任何文档来处理一个非常基本的用例:
我有一个登录用户,并将在设置中存储他们的首选时区.来自客户端的任何日期/时间以已知的文本格式(例如"dd/MM/yyyy HH:mm"),具有已知的时区id(例如"Europe/London").我计划将这些时间转换为UTC/Noda Instants,以防止需要在数据库中存储每个日期的时区信息.
首先,这听起来像是一种明智的做法吗?我可以自由地改变任何东西,所以很乐意设置一个更好/更明智的课程.数据库是MongoDb,使用C#驱动程序.
我试过的是沿着这些方向,但努力克服第一步!
var userSubmittedDateTimeString = "2013/05/09 10:45";
var userFormat = "yyyy/MM/dd HH:mm";
var userTimeZone = "Europe/London";
//noda code here to convert to UTC
//Then back again:
Run Code Online (Sandbox Code Playgroud)
我知道有人会问"你有什么尝试",我所拥有的是各种失败的转换.很高兴被指向"Noda时间入门"页面!
我在Visual Studio中遇到了一个非常令人沮丧的问题.我正在使用Resharper,并在Nunit中编写测试.
如果我设置了一个断点,它会被击中,但是Step In/Over和Continue不起作用,测试永远不会完成.即使我设置了两个断点,继续也不会击中第二个.如果我在没有断点的情况下调试测试,它就会完好无损.
此外,经常和间歇地,当我尝试通过设置断点来调试测试时,我无法评估变量的内容,而是看到此消息:
Function evaluation disabled because a previous function evaluation timed out. You must continue execution to reenable function evaluation.
我正在使用Visual Studio 2010.
如果您有什么想法,请告诉我...我已经在网上搜索过,但没有任何运气.
如有需要,很乐意提供更多信息.
编辑 - 方法示例
测试:
[Test]
public void OneRowAddedToSourceData() {
//Factory just returns System.Data.DataTable with correct columns.
var sourceData = new DataTableContainerFactory().GetTargetTableContainer(DataTypeNames.EventSharedEnd);
//GetRow just returns a populated row.
var row = GetRow(sourceData, 123456, 123,60, 31);
sourceData.DataTable.Rows.Add(row);
Assert.AreEqual(1, sourceData.DataTable.Rows.Count);
}
Run Code Online (Sandbox Code Playgroud)
当我在Assert语句中设置断点,并尝试评估数据表时,我遇到了这个问题.
更新2! 所以,我已将此问题缩小到Resharper Debugging.我将测试类更改为MSTest而不是NUnit,但在使用Resharper进行调试时仍然遇到上述问题.但是,当我使用内置的VS MSTest测试运行器运行测试时,所有问题都已消失!
现在我更喜欢使用NUnit和Resharper,所以如果有人能指出我允许Resharper正确调试的设置,我会很高兴!
我目前正在测试一个站点,其中有多个子域指向同一个ASP.NET应用程序,并且路由处理如何处理每个请求.
为了测试,我在我的"hosts文件"中添加了几个子域,例如"127.0.0.1 admin.TestDomain.com",它工作正常.
但是,问题是当我调用c#中的任何函数来获取主机名/ domain/url(HttpContext.Current.Request.Url ...)时,主机url总是返回"localhost",而不是"TestDomain" ".
任何想法为什么这个名字以这种方式解决,以及我可以抓住"TestDomain.com"?
我正在寻找我用于动态表单应用程序的模式的优化.
我有一个带有方法的存储库类:
public Entity Find(string objectId, List<string> includedProperties);
Run Code Online (Sandbox Code Playgroud)
这将返回一个Entity对象,只包含"includedProperties"中指定的字段,因为在这种情况下为所有目的构建整个对象是不必要的开销(某些实体具有数百个属性).
使用此存储库的示例域代码通常如下所示:
var includedProperties = new List<string> {
"FirstChildName" ,
"FirstChildDob",
"SecondChildName",
"SecondChildDob"
}
Run Code Online (Sandbox Code Playgroud)
然后我获取一个对象:
var person = repository.Find("123",includedProperties);
Run Code Online (Sandbox Code Playgroud)
然后我用一个GetProperty(string propertyName)
方法使用Properties :
var firstChildDob = person.GetProperty("FirstChildDob").AsDateTime();
...etc
Run Code Online (Sandbox Code Playgroud)
这一切都很好,并且非常适合应用程序的动态设计.但是,我发现在获取对象之前,我总是需要单独声明一个"used"属性列表,这令人恼火.
所以,我的问题是,通过反思或其他一些聪明,我可以通过查看稍后在代码中使用"GetProperty"方法传递哪些参数来简化"包含属性"的构建吗?
使用上面的例子,我想使用像这样(或类似)的帮助器来构建列表:
var includedProperties = HelperObject.GetFieldsUsedInCurrentCodeFile();
Run Code Online (Sandbox Code Playgroud)
这将以某种方式拾取传递给"GetProperty()"方法的字符串常量,从而节省了显式声明的需要.欢迎任何建议!
我有一堆div:
<div>
<div class="meat">Some stuff</div>
<div class="meat">Some stuff</div>
<div class="meat">Some stuff</div>
<div class="meat">Some stuff</div>
<div class="dairy">Some stuff</div>
<div class="dairy">Some stuff</div>
<div class="dairy">Some stuff</div>
</div>
Run Code Online (Sandbox Code Playgroud)
我需要设置每个类的第一个样式,并且无法控制html ...最好是纯CSS,但jQuery也可以.
我们在 docker swarm 中使用 NGINX 作为反向代理。NGINX 位于覆盖网络内,并将外部请求中继到相关的 swarm 服务。
但是我们有一个问题,每次我们重新启动/更新或以其他方式关闭 swarm 服务时,NGINX 都会返回502 Bad Gateway
. 502
即使在服务重新启动后,NGINX 仍会继续提供服务,并且在我们重新启动 NGINX 服务之前,这不会得到纠正,这显然违背了在多个地方运行负载均衡器和服务的全部意义。
这是我们的 NGINX CONF:
events {}
http {
fastcgi_buffers 16 16k;
fastcgi_buffer_size 32k;
client_max_body_size 20M;
large_client_header_buffers 8 256k;
client_header_buffer_size 256k;
proxy_buffer_size 128k;
proxy_buffers 4 256k;
proxy_busy_buffers_size 256k;
map $host $client {
default clientname;
}
#Healthcheck
server {
listen 443;
listen 444;
location /is-healthy {
access_log off;
return 200;
}
}
#Example service:
server {
listen 443;
server_name scheduler.clientname.com;
location …
Run Code Online (Sandbox Code Playgroud) 我正在考虑将几个 Nodejs 作业迁移到 apache Airflow。
这些作业记录到标准输出。我是 Airflow 的新手,并已将其设置在 docker 中运行。理想情况下,我们将更新这些作业以使用气流提供的连接,但我不确定这是否可行。
通过将nodejs安装到bash操作符中,我们成功运行了该作业:
t1 = BashOperator(
task_id='task_1',
bash_command='/usr/bin/nodejs /usr/local/airflow/dags/test.js',
dag=dag)
Run Code Online (Sandbox Code Playgroud)
这是一个好方法吗?或者编写一个 Nodejs 运算符是更好的方法吗?
我还考虑过将节点代码放在 HTTP 服务后面,这将是我的首选方法,但随后我们丢失了日志。
关于如何在 Airflow 中最好地构建它有什么想法吗?
我有一个性能繁重的查询,根据其他表中的数据等过滤掉许多不需要的记录.
我正在平均一列,并且还返回每个平均组的计数.这一切都很好.
但是,我还想包括TOTAL计数的百分比.
有没有办法获得这个总计数而不重新运行整个查询,或显着增加性能负载?
如果我不需要完全重构子查询(例如,通过获取其外部的总计数),我也会更喜欢,但如果需要可以做.
SELECT
data.EquipmentId,
AVG(MeasureValue) AS AverageValue,
COUNT(data.*) AS BinCount
COUNT(data.*)/ ???TotalCount??? AS BinCountPercentage
FROM
(SELECT * FROM MultipleTablesWithJoins) data
GROUP BY data.EquipmentId
Run Code Online (Sandbox Code Playgroud) 我有一个模板HTML字符串,它在各个未知点都有{{Url}}个占位符,它与我的应用程序中的某些控制器/操作有关.我需要做的是在视图中渲染最终的html之前将html渲染到这些占位符中.
在视图中我可以简单地调用Html.RenderAction("Action","Controller")
哪个返回我需要的字符串. 但是,我需要在控制器代码中调用此方法,例如(这是简化的):
在"仪表板"控制器中:
var templateHtml = GetTemplateHtml();
//The following line doesn't compile
var html = Html.RenderAction("Index","PowerAnalysisDashpart");
ViewBag.Html = templateHtml.Replace("{{PowerAnalysisDashpart}}",html)
Run Code Online (Sandbox Code Playgroud)
然后在"仪表板视图"中:
<div id="content">
@Html.Raw(ViewBag.Html)
</div>
Run Code Online (Sandbox Code Playgroud)
如何调用"RenderAction"来获取控制器中的Rendered HTML字符串?
编辑: 似乎对我想要实现的目标感到困惑.基本上,我们需要管理员能够创建HTML模板,这将有效地为我们的应用程序的各种不同页面提供框架.iframe可以工作,但我们更喜欢在服务器上构建所有HTML.
是否可以将日期字符串从一种格式转换为另一种格式,而无需将它们实际转换为日期?
我需要这样的东西:
string inputDateString = "01/01/2012 23:36:17.234";
string inputFormat = "dd/MM/yyyy HH:mm:ss.fff";
string ouputFormat = "yyyy/MM/dd HH:mm:ss.fff";
string outputDateString = StringDate.Convert(inputDateString,inputFormat, outputFormat);
Run Code Online (Sandbox Code Playgroud)
我显然可以编写一个StringDate类来解析格式,但这似乎就像重新发明轮子一样.我不能先约会的原因是我在时区/服务器时间遇到了很多问题,并且无法控制运行它的环境.我只是想100%确定日期字符串只是重新安排,而不是搞砸了!
谢谢
编辑 输出格式将始终相同,但输入格式可以是以下任意组合:
时间变化:HH:mm:ss.fff HH:mm:ss HH:mm
日期变化(可能更多):dd/MM/yyyy dd/MM/yy MM/dd/yyyy MM/dd/yy yyyy/MM/dd yy/MM/dd