小编Stu*_*art的帖子

类库中的引用不会复制到正在运行的项目bin文件夹中

我有一个代表我的逻辑层的类库.对于那个库我已经为Google.Apis.Analytics.v3添加了一个nuget包 - 它安装了包及其所有依赖项.

我有一个控制台应用程序,它使用该逻辑类库(常规引用).一切都写得很好.

问题是在运行时它抛出了一个异常,即找不到Google.Apis.dll.此DLL是与nuget一起下载的依赖项.

检查BIN文件夹,我发现在类库bin文件夹中存在此DLL,但在控制台应用程序BIN文件夹中它不存在(而其他相关的DLL是).所以这意味着编译期间复制的并非所有引用.

我在网上搜索过,找到了所有不起作用的解决方法(比如手动编辑项目文件并删除该dll定义中的真正xml行).

我最终做的是将相同的nuget库添加到我的控制台应用程序 - 它可以工作,但感觉有点脏,而不是应该的方式.我认为控制台应用程序是客户谁应该从该逻辑类库获得它的服务,应该知道它的东西没有"客户"担心它.

此外,该控制台应用程序并不是唯一一个将使用该服务的人,我也计划使用该功能的网络应用程序 - 所以我需要将相同的nuget添加到该Web应用程序中 - 再次,感觉有点乱......

只有我吗?这是正确的方法吗?我正在考虑编写一个WCF项目来处理这个功能 - 但这似乎只是在功能方面的一些开销,并且可能会减慢我的工作流程,以便在我看来保持"更清洁".

我只是过度思考吗?

谢谢

.net c# class-library nuget-package

30
推荐指数
2
解决办法
9290
查看次数

无法将单个按键功能发送到远程桌面

在深入钻取网页之后,这是我的代码,遗憾的是,它不会将密钥作为大写发送:/

MapVirtualKey实现:

    const uint MAPVK_VK_TO_VSC = 0x00;
    const uint MAPVK_VSC_TO_VK = 0x01;
    const uint MAPVK_VK_TO_CHAR = 0x02;
    const uint MAPVK_VSC_TO_VK_EX = 0x03;
    const uint MAPVK_VK_TO_VSC_EX = 0x04;

    [DllImport("user32.dll")]
    public static extern int MapVirtualKey(uint uCode, uint uMapType);
Run Code Online (Sandbox Code Playgroud)

SendInput实现:

        struct INPUT
{
           public UInt32 Type;
           public MOUSEKEYBDHARDWAREINPUT Data;
Run Code Online (Sandbox Code Playgroud)

}

  [StructLayout(LayoutKind.Explicit)]
struct MOUSEKEYBDHARDWAREINPUT
{
    [FieldOffset(0)]
    public MOUSEINPUT Mouse;

    [FieldOffset(0)]
    public KEYBDINPUT Keyboard;

    [FieldOffset(0)]
    public HARDWAREINPUT Hardware;
}


  [DllImport("user32.dll", SetLastError = true)]
    static extern UInt32 SendInput(UInt32 numberOfInputs, INPUT[] inputs, Int32 sizeOfInputStructure);
Run Code Online (Sandbox Code Playgroud)

现在为方法:

此方法将键发送为字符串,通过远程桌面可以正常工作:

        public …
Run Code Online (Sandbox Code Playgroud)

c# keyboard desktop sendinput

12
推荐指数
1
解决办法
3684
查看次数

缓冲时播放视频:将缓冲的字节与缓冲的持续时间相关联

我正在开发一个应用程序,它需要将视频从一台计算机(称为视频计算机)传输到另一台计算机(用户计算机).流模型使得视频文件字节"从原样"从视频计算机发送到用户计算机,并且在用户端完成解码.

在用户端接收的字节存储在System.IO.FileStream对象中.fileStream对象的长度(以字节为单位)在缓冲开始时设置(因为可以在开始时发送有关视频文件的元数据).

当缓冲开始时,System.Windows.Controls.MediaElement对象的源被设置为filestream对象.

如果用户不希望寻找视频并且缓冲率保持高于播放速率,则一切顺利.但是,人们不能靠运气.我需要一种机制来检查缓冲视频的持续时间是否小于当前播放时间......这样视频必须暂停(这可能发生在用户在很远的时候寻找视频,或者缓冲速率很慢的情况下).然后应采取纠正措施,并且只有在缓冲了最小持续时间后才开始播放.

因此,我需要一种机制来"确定缓冲持续时间以秒为单位(即以秒为单位查找缓冲区指针的位置)"给定缓冲区指针在缓冲时间线上的位置(以字节为单位)或确定已播放(或在播放指针后面传递)的字节数给定当前以秒为单位播放指针位置".

在任何时刻,已知以下数量:

  • 缓冲区指针的位置以字节为单位
  • 播放指针的位置,以秒为单位
  • 视频的持续时间
  • 视频长度,以字节为单位

可以mediaElement在几秒钟内暂停/播放或搜索到某个位置.

任何帮助将不胜感激.

[注意,不能说bufferPositionInSeconds= bufferPositionInBits/videoBitRate,因为实际上大多数视频的比特率都是可变的,并且因为文件中存在元数据.

.net c# wpf mediaelement video-streaming

7
推荐指数
1
解决办法
1132
查看次数

嵌套视图中的3级列表

我有这些表Pages,PageVersionsElementsOnPageVersions.

我想在一个可折叠的视图中同时在一个页面上显示这个.

像这样:

  • 第1页

    • 版本1
    • 版本2
    • 版本3
    • 版本4
      • 要素1
      • 要素2
      • 要素3
  • 第2页

    • 版本1
    • 版本2
    • 版本3
    • 版本4
      • 要素1
      • 要素2
  • 第3页

    • 版本1
      • 要素1
  • 第4页

    • 版本1
      • 要素1

我不确定检索数据的最佳方法是什么,并在collapsaple布局中轻松显示.

我会做这样的事情:

  1. 一次性获取所有物品."select*from ElementsOnPageVersion e inner join PageVersions v on e.PageVersion = v.id inner join p p.PageId = p.id"
  2. 迭代所有,并构建排序列表的层次结构看起来像collapsaple布局.PageLists [PagesObject],PagesObject有一个PageVersionObjects的排序列表,它有一个ElementObjects的排序列表.
  3. 遍历最后的PagesList列表构建页面.在这个迭代通过pageversionslist显示页面的版本,并在每个版本迭代通过elementslist.

这就是我现在这样做的方式.但它似乎太沉重了,而且很多迭代.

最好的方法是什么?

c# asp.net

7
推荐指数
1
解决办法
224
查看次数

mso-data-placement:同一个单元格无效

我正在从网页导出数据到Excel.这应该是没有道理的,但<p>数据中有标签.这会导致Excel在数据全部位于同一单元格中时创建新行.经过一些研究后,我发现mso-data-placement应该可以解决问题,但它不起作用.Excel打开,显示数据,但会创建额外的不确定行.这是我用来导出数据的代码:

protected void doexcel()
  {
      string style =  @"<style type='text/css'>P {mso-data-placement:same-cell; font-weight:bold;}</style>";


    HttpResponse response = HttpContext.Current.Response;

    // first let's clean up the response.object
    response.Clear();
    response.Charset = "";

    //set the response mime type for excel
    response.ContentType = "application/vnd.ms-excel";
    Random RandomClass = new Random();
    int RandomNumber = RandomClass.Next();
    String filename = "a" + RandomNumber + DateTime.Now + ".xls";
    response.AddHeader("Content-Disposition", "attachment;filename=\"" + filename + "\"" );

    // create a string writer
    using (StringWriter sw = new StringWriter())
    {
        using (HtmlTextWriter htw …
Run Code Online (Sandbox Code Playgroud)

c# asp.net excel

6
推荐指数
1
解决办法
1349
查看次数

当前Recordset不支持书签

我有这个ASP经典代码,它将返回一组记录(记录集):

adoRs.Open "EXEC SP_SelectFromTable", adocn, 1
Run Code Online (Sandbox Code Playgroud)

它显然来自存储过程源.现在我使用AbsolutePage属性进行分页功能,但它会导致错误:

错误类型:ADODB.Recordset(0x800A0CB3)当前记录集不支持书签.这可能是提供者或所选cursortype的限制.

但是,当我将其更改为如下所示的简单选择语句时.它工作得很好.

adoRs.Open "SELECT * FROM tblSample", adocn, 1
Run Code Online (Sandbox Code Playgroud)

我遗失的任何概念?

sql paging asp-classic

5
推荐指数
1
解决办法
4627
查看次数

firefox中的window.location.href

你能告诉我为什么window.location.href不在firefox上工作吗?

码:

<script>

     function goToURL() {
           window.location.href('url');
     }

</script>
Run Code Online (Sandbox Code Playgroud)

我可以使用什么而不是window.location.href替代品?

javascript browser firefox

4
推荐指数
2
解决办法
2万
查看次数

Web API获取方法参数中的多个NULL值

我在下面有这样的示例代码,使用get方法调用API:

CrudService.getAll("sampleurl/param1/param2/param3");
Run Code Online (Sandbox Code Playgroud)

从该示例中,param1和param2可以是null /空值.发生的事情是,当涉及API控制器时,param3的值转到param1.

即使可能有多个空/空值,如何保持参数的正确值?TIA.

.net c# api get

4
推荐指数
2
解决办法
306
查看次数

如何将客户端javascript返回值传递给ASP经典服务器端

JavaScript的

       function test(abc) {
         var ddlArray = new Array();
            var ddl = document.getElementById('AdjusterList');
          for (i = 0; i < ddl.options.length; i++) {
            ddlArray[i] = ddl.options[i].value;
          }
  var indexsel = ddl.selectedIndex;
      return indexsel ;            
     }
Run Code Online (Sandbox Code Playgroud)

ASP

                 strArrayCRN = osRecordSet.RecordCount
                 strArrayCRN2 = osRecordSet2.RecordCount
                 dim StrCount 
                 StrCount =strArrayCRN+strArrayCRN2
Run Code Online (Sandbox Code Playgroud)

HTML + ASP

<select name="AdjusterList" id="AdjusterList" onchange='test("<%=StrCount%>")'><%
%>
   <option value="0">Please choose an option from the list.</option>
  <% Do While (osRecordSet.EOF = False)
       %><option value="<%=osRecordSet.RowPosition%>">
          <%=osRecordSet.Fields("NAME")%></option>
      <%
     osRecordSet.MoveNext
      Loop        %><%
    Do While (osRecordSet2.EOF = False)
            %><option …
Run Code Online (Sandbox Code Playgroud)

html javascript asp-classic

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

将参数发送到另一个ASP.Net页面

我在c#中有一个名为"Point"的课程.

public class Point(){
.
.
}
Run Code Online (Sandbox Code Playgroud)

page1.aspx我创建了:

Point p1 = new Point();
Run Code Online (Sandbox Code Playgroud)

我想将它发送到page2.aspx.我尝试发送:

Response.Redirect("~/page2.aspx?x=p1");
Run Code Online (Sandbox Code Playgroud)

并在第2页中获取:

Point p2 =Request.QueryString["x"];
Run Code Online (Sandbox Code Playgroud)

这是行不通的.你能帮我吗?

c# asp.net parameters

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

如何在CUDA中将atomicAdd应用于数组的每个元素?

我有一个代码从CUDA示例到atomicAdd单个变量

__global__ void myadd(int *data)
{
  unsigned int x = blockIdx.x;
  unsigned int y = threadIdx.x;
  if ( (x%2==0) && (y%2==1) ) atomicAdd(data,1);
}

int main(void)
{
  int *Hdt;
  Hdt = (int*)malloc(sizeof(int));
  // ... CUDA initialization here
  myadd<<<20, 10>>>(Hdt);
  cudaFree(Hdt);
}
Run Code Online (Sandbox Code Playgroud)

它对我有用.但我正在扩展我的代码,所以我想将数组而不是数字传递给内核

__global__ void myadd(int *data)
{
  unsigned int x = blockIdx.x;
  unsigned int y = threadIdx.x;
  unsigned int z = threadIdx.y;
  if ( (x%2==0) && (y%2==1) && (z>4) ) atomicAdd(data[z],1);
}

int main(void)
{
  int *Hdt;
  Hdt …
Run Code Online (Sandbox Code Playgroud)

c++ cuda

-1
推荐指数
1
解决办法
2892
查看次数