我想编写一个CSS选择器规则,选择所有没有特定类的元素.例如,给定以下HTML:
<html class="printable">
<body class="printable">
<h1 class="printable">Example</h1>
<nav>
<!-- Some menu links... -->
</nav>
<a href="javascript:void(0)" onclick="javascript:self.print()">Print me!</a>
<p class="printable">
This page is super interresting and you should print it!
</p>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我想编写一个选择器来选择所有没有"可打印"类的元素,在这种情况下,它是nav和元素.
这可能吗?
注意:在我想要使用它的实际HTML中,将会有更多的元素没有 "可打印"类而不是(我在上面的例子中意识到它是另一种方式).
我是使用ASP.NET MVC开发Web应用程序的新手.事实上,无论技术如何,我都很擅长开发网络应用程序.
目前,我正在开展一个项目,以便更好地了解ASP.NET MVC框架.当阅读SO和互联网上的其他地方时,共识似乎是视图永远不应直接处理业务对象(即实现业务逻辑和包含相关属性的对象).相反,应该使用视图模型.但是,这引入了一些问题:
事实上,它似乎相当麻烦,我没有真正看到任何人正确解释为什么将业务对象传递给视图是一个坏主意.有人可以尝试解释一下(或指向一个很好的解释)?
只是一个澄清 ; 我不是在寻找如何处理上述视图模型的两个问题的示例,而只是解释为什么我应该使用视图模型.
我有一个.NET Core 2.0应用程序,我成功地使用Serilog进行日志记录.现在,我想将一些数据库性能统计信息记录到一个单独的接收器(它们不用于调试,这基本上是应用程序中所有其他日志记录的目的,因此我希望将它们分开)并认为这可以完成通过创建数据库统计记录器Log.ForContext<MyClass>().
我不知道我应该如何配置Serilog 使用我的appsettings.json将我的"调试日志"记录到一个接收器并将我的数据库统计信息记录到另一个接收器?我希望可以这样做:
"Serilog": {
"WriteTo": [
{
"Name": "RollingFile",
"pathFormat": "logs/Log-{Date}.log",
"Filter": {
"ByExcluding": "FromSource(MyClass)"
}
},
{
"Name": "RollingFile",
"pathFormat": "logs/DBStat-{Date}.log",
"Filter": {
"ByIncludingOnly": "FromSource(MyClass)"
}
}
]
}
Run Code Online (Sandbox Code Playgroud)
"Filter"配置的各个部分对我来说是纯粹的猜测.这是可以使用我的配置文件管理器还是我需要在我的Startup.cs文件中的代码中执行此操作?
编辑:我已经使用C#API工作但仍想使用JSON配置解决它:
Log.Logger = new LoggerConfiguration()
.WriteTo.Logger(lc => lc
.Filter.ByExcluding(Matching.FromSource<MyClass>())
.WriteTo.LiterateConsole())
.WriteTo.Logger(lc => lc
.Filter.ByExcluding(Matching.FromSource<MyClass>())
.WriteTo.RollingFile("logs/DebugLog-{Date}.log"))
.WriteTo.Logger(lc => lc
.Filter.ByIncludingOnly(Matching.FromSource<MyClass>())
.WriteTo.RollingFile("logs/DBStats-{Date}.log", outputTemplate: "{Message}{NewLine}"))
.CreateLogger();
Run Code Online (Sandbox Code Playgroud) 我有一组接近表面的3d点.但是,每个点都会出现一些错误.此外,点集包含的点数远远多于表示底层表面所需的点数.
我正在寻找的是一种算法来创建一个新的(小得多)点集,表示一个简化,更平滑的表面版本(原谅没有比"简化,更平滑"更好的定义).底层表面不是数学表面,所以我不希望将数据集拟合到某些数学函数中.
我使用Win32 API和C/C++.我有一个HFONT,想用它来创建一个新的HFONT.新字体应使用完全相同的字体指标,但它应该是粗体.就像是:
HFONT CreateBoldFont(HFONT hFont) {
LOGFONT lf;
GetLogicalFont(hFont, &lf);
lf.lfWeight = FW_BOLD;
return CreateFontIndirect(&lf);
}
Run Code Online (Sandbox Code Playgroud)
"GetLogicalFont"是缺少的API(据我所知,无论如何).还有其他方法吗?最好是适用于Windows Mobile 5+的东西.
MSYS和类UNIX构建系统分开; 为什么Mingw存在?我的意思是,为什么win32/64不是"香草GCC"中的另一个目标?这有技术原因还是"政治"?在我看来,Windows平台没有什么特别之处可以使GCC端口与原始GCC"不兼容".
我正在编写一个小程序,它将使用HTTPS和HttpWebRequest类向服务器发出GET请求.服务器(显然)有一个服务器证书.它还希望客户提供证书.
但是,在发出请求时,我收到一个System.Net.WebException,指出无法建立安全的TLS/SSL连接.我很快发现服务器的证书无效.假设这是造成异常的原因,我试图接受无效证书(遗憾的是,更新证书不是一个选项),使用下面的代码:
ServicePointManager.ServerCertificateValidationCallback += delegate {
return true;
};
Run Code Online (Sandbox Code Playgroud)
然而,这并没有解决问题.
由于异常没有给出任何细节,因此很难确定导致它的原因.我是否试图覆盖无效的服务器证书不起作用?我提供的客户端证书是否不受服务器信任?我没有以正确的方式加载客户端证书吗?
我喜欢有关如何调试此类问题的提示.遗憾的是,我无法访问服务器或其日志.
以下是代码的重要部分:
ServicePointManager.ServerCertificateValidationCallback += delegate {
return true;
};
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url); // url is an HTTPS URL.
X509Certificate clientCert = new X509Certificate("certificate.crt", "password");
req.ClientCertificates.Add(clientCert);
WebResponse resp = req.GetResponse(); // This fails!
Run Code Online (Sandbox Code Playgroud) 我最近阅读了关于托管语言是否比本机语言(特别是C#vs C++)更慢(或更快)的讨论.一位参与讨论的人说,托管语言的JIT编译器能够对使用指针的语言中无法实现的引用进行优化.
我想知道的是什么样的优化可以在引用而不是指针上?
请注意,讨论是关于执行速度,而不是内存使用情况.
compiler-construction jit pointers reference vm-implementation
我正在尝试创建一个类的Mockito模拟对象,其中包含一些相当繁重的网络和事务行为,我不想在我正在编写的当前单元测试中处理这些行为.但是,在实例化模拟对象时,Mockito似乎会调用实际类的默认构造函数.默认构造函数执行在此单元测试的上下文中导致问题的各种事物.
Mockito应该调用默认构造函数吗?有没有办法避免这种行为?
这是我创建模拟对象的方法:
ConcreteClassWithComplexDefaultConstructor mockObject = mock(ConcreteClassWithComplexDefaultConstructor.class);
Run Code Online (Sandbox Code Playgroud)
编辑:所以我想出了发生了什么.没有调用具体类的默认构造函数(正如Luciano指出的那样).但是,调用类的静态构造函数.据我所知,静态的东西和Mockito工作得不是很好,但有没有办法解决这个问题,即以某种方式让它忽略静态构造函数.然而,我并没有很高的期望......
我正在尝试编写存储库实现的单元测试.存储库使用RavenDB作为数据库.对于单元测试,我想模拟RavenDB部分.为了创造模拟(假货),我正在使用FakeItEasy.我认为由于RavenDB API是通过接口访问的,因此模拟/伪装不会有任何问题.
但是,在尝试实例化特定模拟时,我确实遇到了问题.我的单元测试代码的相关部分如下所示:
[Fact]
public void Test() {
UserDocument doc = ...;
IQueryable<UserDocument> where = A.Fake<IQueryable<UserDocument>>();
A.CallTo(() => where.First()).Returns(doc);
IRavenQueryable<UserDocument> query = A.Fake<IRavenQueryable<UserDocument>>();
IDocumentSession session = A.Fake<IDocumentSession>();
A.CallTo(() => session.Query<UserDocument>()).Returns(query);
IDocumentStore store = A.Fake<IDocumentStore>();
A.CallTo(() => store.OpenSession()).Returns(session);
.
.
.
}
Run Code Online (Sandbox Code Playgroud)
在实例化IRavenQueryable假的时候,我得到了一个异常.这是来自Xunit.net跑步者的日志:
UnitTest.Test : FakeItEasy.Core.FakeCreationException :
Failed to create fake of type "System.Linq.IQueryable`1[UserDocument]".
Below is a list of reasons for failure per attempted constructor:
No constructor arguments failed:
No default constructor was found on the type System.Linq.IQueryable`1[UserDocument].
Stack Trace:
vid …Run Code Online (Sandbox Code Playgroud) c# ×3
mocking ×2
.net ×1
.net-core ×1
algorithm ×1
asp.net-core ×1
asp.net-mvc ×1
c ×1
c++ ×1
css ×1
fakeiteasy ×1
gcc ×1
html ×1
https ×1
java ×1
jit ×1
junit ×1
logging ×1
math ×1
mingw ×1
mockito ×1
pointers ×1
ravendb ×1
reference ×1
serilog ×1
surface ×1
tdd ×1
viewmodel ×1
winapi ×1
xunit.net ×1