小编Ang*_*ker的帖子

如何将文本跨度相对于图像向下移动几个像素?

我有以下 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 个像素?

html css

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

为什么编译器会向交换机添加语句?

我有以下相当简单的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)

c# compiler-optimization

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

文本项不与 flex-end 对齐

根据 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)

html css flexbox

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

如何在高性能环境下生成网页图像?

我正在尝试在服务器端环境中在一秒钟内生成网页图像。这些请求可以同时来自网络。为此,我使用了运行良好的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 内部是如何工作的,所以我有几个关于我正在考虑的解决方案的问题。

  1. PuppeteerSharp.Browser对象的线程安全和/或重入?我可以使用来自不同线程的相同浏览器对象吗?我不这么认为,因为它与内存中的特定 Chromium 实例相关联。
  2. 如果我从每个请求中删除.LaunchAsync和删除.NetPageAsync将显着加快操作速度。PuppeteerSharp.Browser对象池会起作用吗?例如,我可以预先分配其中的 5 个并对其执行.NetPageAsync。然后传入的请求将使用池中的对象。这是一种可行的方法吗?

.net c# webautomation chromium puppeteer-sharp

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

如何让 Serilog 从 appsettings.json 登录到 web 输出目录?

我使用 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'。

我怎样才能让它写入我的网络应用程序的内容根目录?

.net c# serilog .net-core

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

将计算列设置为 PERSISTED 的目的是什么?

我的表格包含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)

即使我设置calcIncomePERSISTED,此查询仍然需要fn_calcIncome每一行。

PERSISTED那么,如果计算列的行为与非持久计算列相同,那么设置计算列的目的到底是什么?

sql t-sql sql-server sql-server-2017

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

如何获取类的名称

好的,我有以下结构.基本上是一个插件架构

// 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)

我想要这个声明 …

c# visual-studio-2008

3
推荐指数
2
解决办法
367
查看次数

哪个本地数据库适合我的情况?

我将构建一组应用程序.其中一个应用程序是无人值守的应用程序(用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等......但对它们没有经验,我不知道有谁实际使用过它.

什么是最适合我的情况?

c# database vb6 embedded-database

3
推荐指数
2
解决办法
2409
查看次数

为什么我必须链接参考组件?

我的项目引用了一个引用另一个程序集的程序集(将其称为X)(将其称为Y).

当我尝试编译我的项目时,它要求它应该引用程序集Y.为什么会这样?我在引用程序集X的行上收到以下错误:

"DevExpress.XtraEditors.XtraForm"类型在未引用的程序集中定义.您必须添加对程序集'DevExpress.Utils.v9.1,Version = 9.1.2.0,Culture = neutral,PublicKeyToken = b88d1754d700e49a'的引用.

DevExpress.XtraEditors.XtraForm 是集会Y.

为什么是这样?我以前没见过这种行为.

c# .net-assembly visual-studio-2008

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

C#泛型问题

我对泛型有点生疏,尝试做以下事情,但编译器抱怨:

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不是它所知道的类型或命名空间,并且我不能在非泛型声明中使用它.

这不可能吗?

c# generics collections

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