问题列表 - 第17720页

适用于Google Chrome的C#插件

我可以用C#与谷歌浏览器沟通吗?

例如,用于编写chrome插件.

c# google-chrome

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

将事件处理程序附加到mshtml.DispHTMLInputElement

我正忙于在C#中编写BHO(浏览器助手对象),我需要将事件处理程序附加到输入元素上的所有onclick事件.我没有使用visual studio提供的内置web浏览器,而是启动了客户端PC上安装的Internet Explorer的新实例.使用不同版本的IE时会出现问题.

在IE7和IE8中,我可以这样做:

public void attachEventHandler(HTMLDocument doc)
{
  IHTMLElementCollection els = doc.all;
  foreach (IHTMLElement el in els)
  {
    if(el.tagName == "INPUT")
    {
      HTMLInputElementClass inputElement = el as HTMLInputElementClass;
      if (inputElement.IHTMLInputElement_type != "text" && InputElement.IHTMLInputElement_type != "password")
      {
        inputElement.HTMLButtonElementEvents_Event_onclick += new HTMLButtonElementEvents_onclickEventHandler(buttonElement_HTMLButtonElementEvents_Event_onclick);
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

这很有效,事实是,IE6在转换为HTMLInputElementClass时会抛出一个错误,所以你被迫转换为DispHTMLInputElement:

public void attachEventHandler(HTMLDocument doc)
{
  IHTMLElementCollection els = doc.all;
  foreach (IHTMLElement el in els)
  {
    if(el.tagName == "INPUT")
    {
      DispHTMLInputElement inputElement = el as DispHTMLInputElement;
      if (inputElement.type != "text" && inputElement.type != "password") …
Run Code Online (Sandbox Code Playgroud)

c# bho mshtml event-handling

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

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

如果您不应该将集合返回给调用者,那么如何将一组数据返回给调用者?

我正在编写一个方法,旨在返回一个充满配置键和值的字典.构建这个字典的方法是动态的,所以我需要将这组键和值作为集合(可能IDictionary<string, string>)返回.在我的各种读物中(来源逃避了我),关于从方法调用返回集合类型的一般共识不是.

我理解这个政策的原因,我倾向于同意,但在这种情况下,我看不到其他选择.这是我的问题:有没有办法可以将这些数据返回给调用者,同时遵循这个原则?

编辑:我听到不允许这种行为的原因是,客户端要使用(但未修改)的集合或字典类型会暴露太多行为,从而产生调用者可以修改类型的错觉.例如,Dictionary具有Add和Remove方法,以及一个可变索引器.如果字典中的值是只读的,那么这些方法充其量是多余的.如果内部集合被暴露,则可以进一步造成损害,并且集合的"所有者"不会预期从外部来源对集合进行更改.

还有其他原因我听说过,但我无法回想起它们 - 这些是我的情况中最相关的.

编辑:更多说明:我遇到的问题是我正在构建一个API,所以我无法控制调用此函数的客户端.克隆字典不是问题,但我试图让我的API保持尽可能干净.使用"添加"和"删除"等方法返回字典意味着可以或应该修改集合,但实际情况并非如此.这里的修改是没有意义的,所以我不想通过返回类型的接口公开该功能的承诺.


解决方案:为了满足我对干净API的需求,我将编写一个自定义的Dictionary类,它不会公开变异方法Add和Remove,或者设置索引器.这种类型不会实现IDictionary,但我会编写一个方法ToDictionary来返回一个数据IDictionary.它将实现IEnumerable<KeyValuePair<TKey, TValue>>,以便访问可枚举的标准LINQ操作.现在我需要的是我的自定义词典类型的名称... =)谢谢大家.

.net c# collections

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

C#中的纤维:它们比迭代器更快,并且让人们使用它们?

所以我正在和一位同事聊聊有关光纤的问题,在2003年发表这篇论文,描述了使用Fiber API在C#中实现协同程序.

本文的实现Yield是针对.NET 1.1的,因此它早yield return于.NET 2.0中出现的语法.

乍一看,它确实看起来这里的实现可能更快,并且可以很好地扩展到多个CPU.

有人用过吗?

c# yield coroutine fiber

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

有没有任何脚本SVG编辑器?

我想使用一些脚本语言(最好是Python)编辑SVG文件.特别是,我想合并两个SVG文件,添加一些注释,并将它们排列在一个更大的图像中.有没有可用于此类目的的软件?

谢谢,

巴尔托什

UPDATE

我终于决定使用nosklo提出的方法.你可以在github repo上找到SVG处理python模块的代码.我还在这篇文章中描述了如何使用它

python svg vector-graphics

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

云托管与托管主机

似乎无法避免关于云计算的炒作,但实际过渡到这个新平台需要经过多次讨论......

从理论的角度来看,可以说如下:

云:

  • 架构变更(你可能没有安装任何你想要的东西)
  • 学习曲线(因为上述)
  • 没有故障转移(因为故障被处理)
  • 粒度成本(每Ghz或Gbyte支付)
  • 瞬时可扩展性(不是那么即时,但至少是透明的?)?较低的延迟

管理:

  • 故障转移(取决于提供商)
  • 手动扩展(需要维护)
  • 静态成本(您支付包裹,无论您是否完全使用它)
  • 降低成本(仅适用于入门套餐)
  • 数据所有权(你这样做)
  • 自由(你呢)?较低的延迟(取决于提供商)

假设以上是正确的; 然而,逻辑位置是"它取决于..."..在应用程序本身.现在出现了一个隐藏的问题:你如何描述你的j2ee应用程序,以确定它是否是云的候选者; 知道它是

  • 服务/功能的数量相当大的应用程序(即; servlet)
  • 依赖于复杂的数据库(即数字表)
  • 不需要太多的媒体资源,主要是基于文本的

java cloud hosting

11
推荐指数
1
解决办法
2202
查看次数

Python stacktrace帮助

当我尝试在我的Python网站上查看一些数据时,我有这个堆栈跟踪错误,有人可以告诉我什么是问题我是如此迷失

   Environment:

Request Method: GET
Request URL: http://mywesbite.genericdomain.co.uk/admin/shop/passwordresetrequest/4/
Django Version: 1.1.1
Python Version: 2.5.2
Installed Applications:
['django.contrib.auth',
 'django.contrib.admin',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.sites',
 'mywebsite.news',
 'mywebsite.store_locator',
 'mywebsite.css_switch',
 'mywebsite.professional',
 'mywebsite.contact',
 'mywebsite.shop',
 'tinymce',
 'captcha']
Installed Middleware:
('django.middleware.common.CommonMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware')


Template error:
In template /usr/lib/python2.5/site-packages/django/contrib/admin/templates/admin/change_form.html, error at line 20
   Caught an exception while rendering: 'PasswordResetRequest' object has no attribute 'date'
   10 : 


   11 : {% block coltype %}{% if ordered_objects %}colMS{% else %}colM{% endif %}{% endblock %}


   12 : 


   13 : {% block bodyclass %}{{ opts.app_label …
Run Code Online (Sandbox Code Playgroud)

python django stack-trace

0
推荐指数
1
解决办法
926
查看次数

如何在DLL边界上公开STL列表?

我有一个DLL,需要访问存储在主机应用程序中的STL容器中的数据.因为C++没有标准的ABI,并且我想支持不同的编译器,所以应用程序和DLL之间的接口基本上必须保持普通的旧数据.

对于向量,这是相对简单的.你可以简单地返回向量的内存块,因为它保证是有条件的:

// To return vector<int> data
virtual void GetVectorData(const int*& ptr, size_t& count) const
{
    if (!vec.empty())
        ptr = &(vec.front());

    count = vec.size();
}
Run Code Online (Sandbox Code Playgroud)

现在,DLL可以通过该接口对向量的数据进行安全的只读访问.DLL也可以包装它以将内容复制到自身的向量中.

那么STL列表(和deques)呢?是否有另一种直接允许通过DLL边界访问的方法?或者我是否必须使用某种GetFirst()/ GetNext()接口?我可能需要为很多列表执行此操作,因此有一个像vector一样简单的解决方案会很好.

c++ stl list abi pod

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

如何更改wsimport生成的文件的编码?

我正在使用JAX-WS的wsimport ant任务来基于某些wsdl生成源。

但是,这些生成的源似乎都是UTF-8编码的。有没有办法更改wsimport任务生成的文件的编码?

java jax-ws

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