我有以下 html:
<div class="text-center">
<img src="~/images/prof_grade_tech.svg" height="32" />
<span>Professional Grade Technology</span>
</div>
Run Code Online (Sandbox Code Playgroud)
它看起来像这样:
我想将文本span向下移动2 个像素以更好地将其与图像对齐。我试过添加边距、填充、不可见边框,但似乎没有任何帮助。我已经添加vertical-align:bottom到图像中并且这种工作有效,但是它使图像向下移动得太远了。
那么如何将文本向下移动 2 个像素?
我有以下相当简单的switch语句.//早期字符串fullPath = GetFullPath(); string type = GetEntityType();
switch (type.ToLower()) {
case "tables":
tables.Add(fullPath);
break;
case "views":
views.Add(fullPath);
break;
case "functions":
functions.Add(fullPath);
break;
case "storedprocs":
storedprocs.Add(fullPath);
break;
case "data":
data.Add(fullPath);
break;
case "layouts":
layouts.Add(fullPath);
break;
case "scripts":
scripts.Add(fullPath);
break;
default:
Console.WriteLine($"What is this: {type}");
break;
}
Run Code Online (Sandbox Code Playgroud)
当我使用Reflector对生成的二进制文件进行反编译时,switch(string)已将其更改为ComputeStringHash,然后在每个case语句中,它通过if语句检查值.听起来它正在做两倍的工作.
string s = str2.ToLower();
switch (<PrivateImplementationDetails>.ComputeStringHash(s))
{
case 0x20890fc4:
if (s == "tables")
{
break;
}
goto Label_0218;
case 0x454a414e:
if (s == "functions")
{
goto Label_01DE;
}
goto Label_0218; …Run Code Online (Sandbox Code Playgroud) 根据 flexbox文档,align-items: flex-end在父级上应该将所有子级对齐到容器的底部。
我做了一个小样本来证明相反的情况。为了使 div 正确对齐,我缺少什么?
.container {
display: flex;
flex-direction: row;
align-items: flex-end;
}
.item1 {font-size: 80px;}
.item2 {font-size: 14px;}
.item3 {font-size: 45px;}Run Code Online (Sandbox Code Playgroud)
<div class="container">
<div class="item1">Item 1</div>
<div class="item2">Item 2</div>
<div class="item3">Item 3</div>
</div>Run Code Online (Sandbox Code Playgroud)
我正在尝试在服务器端环境中在一秒钟内生成网页图像。这些请求可以同时来自网络。为此,我使用了运行良好的Puppeteer-Sharp库。在后端,它使用 Chromium 加载页面,然后对其进行截图。
问题是需要一段时间才能开始。例如,请注意 readme.md 示例代码中的时间(来自我的电脑):
var options = new new LaunchOptions {Headless = true, ExecutablePath = @"c:\foo\chrome.exe"};
var browser = await Puppeteer.LaunchAsync(options).Result; // ~500ms
var page = browser.NewPageAsync().Result; // ~215ms
var webPage = page.GoToAsync("http://www.google.com").Result; // ~500ms
var screenshot = page.ScreenshotAsync(outputFile);
screenshot.wait(); // ~300ms
Run Code Online (Sandbox Code Playgroud)
如您所见,它很容易超过一秒钟。我不知道 Chromium 内部是如何工作的,所以我有几个关于我正在考虑的解决方案的问题。
PuppeteerSharp.Browser对象的线程安全和/或重入?我可以使用来自不同线程的相同浏览器对象吗?我不这么认为,因为它与内存中的特定 Chromium 实例相关联。 .LaunchAsync和删除.NetPageAsync将显着加快操作速度。PuppeteerSharp.Browser对象池会起作用吗?例如,我可以预先分配其中的 5 个并对其执行.NetPageAsync。然后传入的请求将使用池中的对象。这是一种可行的方法吗?我使用 Visual Studio 和集成的 Serilog 创建了一个新的 .NET Core Web 项目。它从 appsettings.json(通过.UseSerilog((ctx, config) => { config.ReadFrom.Configuration(ctx.Configuration); }))读取设置。
在 appsettings.json 中,写入日志的路径指定为Serilog/WriteTo/Args/pathFormat。如果我将该值设置为log.txt,它将尝试将文件写入`c:\program files\iisexpress\log.txt'。
我怎样才能让它写入我的网络应用程序的内容根目录?
我的表格包含calcIncome计算列:
CREATE TABLE foo
(
id int,
name varchar(100),
[other columns],
calcIncome AS dbo.fn_calcIncome() PERSISTED NOT NULL
)
Run Code Online (Sandbox Code Playgroud)
询问:
select *
from foo
where calcIncome > 100
Run Code Online (Sandbox Code Playgroud)
即使我设置calcIncome为PERSISTED,此查询仍然需要fn_calcIncome每一行。
PERSISTED那么,如果计算列的行为与非持久计算列相同,那么设置计算列的目的到底是什么?
好的,我有以下结构.基本上是一个插件架构
// assembly 1 - Base Class which contains the contract
public class BaseEntity {
public string MyName() {
// figure out the name of the deriving class
// perhaps via reflection
}
}
// assembly 2 - contains plugins based on the Base Class
public class BlueEntity : BaseEntity {}
public class YellowEntity : BaseEntity {}
public class GreenEntity : BaseEntity {}
// main console app
List<BaseEntity> plugins = Factory.GetMePluginList();
foreach (BaseEntity be in plugins) {
Console.WriteLine(be.MyName);
}
Run Code Online (Sandbox Code Playgroud)
我想要这个声明 …
我将构建一组应用程序.其中一个应用程序是无人值守的应用程序(用VB6编写),它将从各种源接收的数据写入本地数据库.所有其他应用程序(将在VS 2008/c#3.0中编写)将主要用于报告原因来读取此数据.
我不想要SQL Server/MySql/Sybase甚至是它的快速版本,因为分发它是一个问题(例如需要单独安装等等).我正在寻找一个本地数据库,其中包含VB6的驱动程序(所以可能是OLEDB,或ODBC,如果我必须解决它)和ADO.NET.如果数据库支持ORM,如NHibernate或至少1对1的映射器,如Subsonic,这也不错,但这不是一个交易破坏者.但我的主要要求是数据库应该非常可靠,这样我就不必浪费时间摆弄它,恢复丢失的数据等等......
我从当天回来就有MS Access的经验,没有太多好的回忆(也不是很糟糕).我听说过SQLite,SQL Server Compact Edition,VistaDB等......但对它们没有经验,我不知道有谁实际使用过它.
什么是最适合我的情况?
我的项目引用了一个引用另一个程序集的程序集(将其称为X)(将其称为Y).
当我尝试编译我的项目时,它要求它应该引用程序集Y.为什么会这样?我在引用程序集X的行上收到以下错误:
"DevExpress.XtraEditors.XtraForm"类型在未引用的程序集中定义.您必须添加对程序集'DevExpress.Utils.v9.1,Version = 9.1.2.0,Culture = neutral,PublicKeyToken = b88d1754d700e49a'的引用.
DevExpress.XtraEditors.XtraForm 是集会Y.
为什么是这样?我以前没见过这种行为.
我对泛型有点生疏,尝试做以下事情,但编译器抱怨:
protected List<T> PopulateCollection(DataTable dt) where T: BusinessBase
{
List<T> lst = new List<T>();
foreach (DataRow dr in dt.Rows)
{
T t = new T(dr);
lst.Add(t);
}
return lst;
}
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,我正在尝试将表的内容转储到对象中(通过将DataRow传递给构造函数),然后将对象添加到集合中.它抱怨T不是它所知道的类型或命名空间,并且我不能在非泛型声明中使用它.
这不可能吗?