关于如何在线进行此类似乎有很少的文档,所以我想在这里问...
基本上我想创建一个非常简单的Skype插件,它只能在聊天窗口中使用,并且可以通过按下按钮触发(如果你可以轻松添加按钮)或/和输入skype命令即"/ CallMySkypePlugin"
理想情况下,我只是想知道如何以这种方式挂钩到skype,我有Skype4COM,但它没有说明你的插件如何被调用或者skype的入口点是...
我理想地期望创建一个新的类库,然后有一个实现Skype接口的类或其他东西(让他们有一个入口点),然后在那里锁定到聊天窗口"MessageSent"事件或其他东西,然后调用我的方法...即
public class MySkypePlugin : SkypeEntryPointInterface
{
// The main skype functionality class
private void Skype skype = new Skype();
// Something like this as the entry point
public void SkypeEntryPoint()
{
skype.MessageSent += ChatWindow_MessageSent;
}
// Do my stuff here
private void ChatWindow_MessageSent(SkypeEvent e) { ... }
}
Run Code Online (Sandbox Code Playgroud)
任何帮助都会很棒!
我看到的所有示例都显示了一个带有构造函数的类.可以不加入构造函数吗?很像C#如何自动使你成为默认的空构造函数?
我很确定这是一个简单的问题,我已经看过它之前没有确切的答案.
我有几个用于不同环境的属性文件,即xxxx-dev,xxxx-test,xxxx-live
属性文件包含以下内容:
server.name=dummy_server_name
server.ip=127.0.0.1
Run Code Online (Sandbox Code Playgroud)
我使用的模板文件看起来像:
<...>
<server name="@server.name@" ip="@server.ip@"/>
</...>
Run Code Online (Sandbox Code Playgroud)
以上是一个非常原始的例子,但我想知道是否有办法告诉ANT基于属性文件替换所有令牌,而不是必须为每个令牌行硬编码...即
<replacetokens>
<token key="server.name" value="${server.name}"/>
<token key="server.ip" value="${server.ip}"/>
</replacetokens>
Run Code Online (Sandbox Code Playgroud)
任何帮助都会很棒!
我通常使用Nunit,但在我目前的项目中,我使用的是MSTest.现在我有一个测试,它期望一个异常,但仍然失败,我不知道为什么.
这是我用来复制问题的一个简单示例:
[TestMethod, ExpectedException(typeof(ErrorResponseException))]
public void should_throw_exception()
{
throw new ErrorResponseException();
}
Run Code Online (Sandbox Code Playgroud)
ErrorResponseException是一个只从Exception继承的类,也就是说,任何人都知道为什么会失败,我希望它能通过.
我正在使用Mousetrap javascript库,我想捕获特定元素的输入.
该方案是我对用户名和密码的文本框,其KnockoutJS结合然后当按下的按钮的AJAX请求时登录用户.现在因为没有形式而且它不是真正的按钮,它是Jquery UI变成按钮的锚点,我想知道是否有一些简单的方法可以让捕鼠器绑定到元素而不是文档级别.
因此,例如,正常的捕鼠器绑定将是:
Mousetrap.bind('enter', function(event) { CallSomeAjaxMethod(); });
Run Code Online (Sandbox Code Playgroud)
现在,它将检查页面上的任何回车键(在文本框元素之外),然后根据它执行某些操作.现在的问题是在这种情况下,我希望只有在特定元素的范围内执行时才能捕获此事件.
所以例如我想要做一些事情:
var element = document.getElementById("some-element");
Mousetrap.bind('enter', element, function(event) { CallSomeAjaxMethod(); });
Run Code Online (Sandbox Code Playgroud)
或者更流利,如:
Mousetrap.bind('enter', function(event) { CallSomeAjaxMethod(); }).on(element);
Run Code Online (Sandbox Code Playgroud)
有没有办法做到这一点?我能看到的唯一方法(使用Mousetrap)当前是将此文档范围绑定,并且只是尝试获取事件被引发的元素(如果可能).
我知道,但我已经有捕鼠器装,我想如果可能的话在这里重新使用它,你可以做这样的事情用jQuery或香草JS.
由于某些原因,在我当前的项目中,我通过项目属性创建了我的资源文件,添加了一堆现有图像.然后将这些图像添加到菜单项,保存.此时一切看起来都很好,图像都正确映射.
然而,一旦我关闭该表单的设计器,然后打开它我得到错误对话框说:
The type 'My.Project.Properties.Resources' has no property named 'icon_plus'.
令人讨厌的是,如果你按照它进入代码没有错误,它编译好:
this.newToolStripMenuItem.Image = global::My.Project.Properties.Resources.icon_plus;
Run Code Online (Sandbox Code Playgroud)
我尝试删除所有资源并从项目中删除资源文件,完全关闭IDE然后重新加载它.我已经移动了文件的位置,但我只是出于想法,它真的开始感谢大约10个表单和控件,每个给我这个错误,他们从UI中删除图标.
我想知道在编译时是否有办法忽略某些TypeScript错误?
我基本上遇到了大多数有大型项目的人都使用this关键字的相同问题,我不想把所有的类方法都放到构造函数中.
所以我有一个这样的例子:
这似乎创建了完全有效的JS,并允许我解决这个关键字问题,但正如您在示例中所见,typescript编译器告诉我,我无法编译该代码作为关键字,这在该范围内无效.但是,我不明白为什么它是一个错误,因为它产生好的代码.
那么有没有办法告诉它忽略某些错误?我肯定有时间会有一个很好的方法来管理这个关键字,但目前我发现它非常可怕.
==编辑==
(除非你关心这个问题的背景和部分咆哮,否则不要阅读)
只是为所有这些添加一些上下文来表明我不仅仅是一些坚果工作(我相信很多人仍然会认为我是)并且我有一些很好的理由为什么我希望能够允许这些要经历的错误.
下面是其中重点介绍一些主要问题(IMO)与打字稿我已经取得了一些以前的问题,目前的 这个实现.
https://typescript.codeplex.com/discussions/429350(以及我在底部做出的一些评论)
我遇到的根本问题是我需要保证所有逻辑都在一致的范围内,我需要能够访问knockout,jQuery等中的内容以及类的本地实例.我以前用var self = this;JavaScript中的类声明做了这个并且工作得很好.正如之前的一些问题中提到的,我现在不能这样做,所以我能保证范围的唯一方法是使用lambda方法,并且我可以将其中一个定义为类中的方法的唯一方法是在构造函数中,这一部分非常重视个人偏好,但我发现人们似乎认为使用该语法被归类为推荐模式并且不仅仅是一种解决方法,这一点非常可怕.
我知道TypeScript处于alpha阶段并且会发生很多变化,而且我希望我们能够更好地处理这个问题,但是目前我要么把所有东西弄得一团糟,只是为了让打字稿工作(这是在数百个文件中)我正在迁移到TypeScript)或者我只是在这种情况下调用我比编译器更好的调用(非常危险我知道)所以我可以保持我的代码很好并希望当一个更好的模式出来处理这个我然后可以迁移它.
另外,我知道很多人都喜欢TypeScript正在接受并试图保持尽可能接近新的JavaScript功能和已知语法的事实,这很好,但是typescript不是JavaScript的下一个版本所以我没有看到在语言中添加一些语法糖的问题,因为想要使用最新和最好的官方JavaScript实现的人仍然可以这样做.
我将一些javascript代码移植到打字稿上,我遇到了一个问题.
我有一个ajax调用,它将一个对象作为上下文传递,该对象包含一些回调和一些其他信息,这些信息由成功或错误回调读出,指示成功调用应该重定向到的位置:
function SomeAjaxService
{
var self = this;
self.CheckErrorType = function(...) {
// Do something
};
var SuccessProxyCallback = function(results) {
// Do some stuff with results, like send off some events
this.successCallback(results);
};
var FailureProxyCallback = function(...) {
// Do some stuff with errors, and fire some events
var someErrorType = self.CheckErrorType(...);
this.failureCallback(someErrorType);
};
self.SendRequest = function(requestArgs) {
var ajaxSettings = {
context: requestArgs,
// Assign a load of stuff
};
$.ajax(ajaxSettings);
};
}
Run Code Online (Sandbox Code Playgroud)
现在您可以看到失败代理调用本地方法以及使用"this"上下文对象.那你怎么用打字稿来处理这种情况呢?
你可以self = …
目前我的建设流程是:
这导致一个index.js文件重新导出所有内部文件,而开发人员不需要知道它,以及许多反映文件结构的d.ts文件.
现在这个工作,但如果我把这种方法带到浏览器,我需要webpack up所有的js或者它将是一个http请求噩梦拉入所有单个文件.目前,这个库将作为其他库的依赖项使用,因此它不是逻辑或任何模块/库的终点.
现在主要问题是webpack我知道我可以加载TS并获得一个commonJS模块,但是我找不到任何方法d.ts用webpack 生成文件.那么,有没有办法,我用的WebPack在这种情况下编译/打包,并具有输出my-lib.js和my-lib.d.ts,而不是这将产生大量的单个文件的现行做法.
==关于用例的额外澄清==
只是为了尝试确保每个人都在同一页面上,当我说它是一个可以重复使用的库时,我的意思是这是通过npm或jspm加载的东西或其他作为其他模块依赖的东西模块.
因此,例如让我们假装jquery不存在,我将创建它,但将其写入typescript中,供其他开发人员在JS和TS中使用.现在,typescript输出js文件和d.ts文件,js文件将按照您的预期使用,但d.ts文件向其他typescript文件解释库中包含的类型.
所以假设我已经在上面列出的TS中开发了jquery,那么我想在npm/jspm/bower等上发布这个输出(由webpack或tsc创建).那么其他人可以在他们自己的项目中重用这个库.
因此,如果愿意,webpack通常用于打包"应用程序",其中包含逻辑和业务问题,并直接作为更大关注点的入口点使用.在这个例子中,它将用作库的编译和打包步骤,并将通过var myLib = require("my-lib");或类似地使用.
正如问题所说,如果它是HttpOnly,你能否知道Javascript中是否存在cookie?我不需要访问其中的信息,只知道它有一个.
关于这种情况的更多信息是,最初有一个使用cookie作为身份验证令牌的Web服务器,并且它被设置为httponly,因为它没有被客户端使用,所以它被添加到安全性中.
但是现在需要进行更改,客户端需要知道它是否有cookie(因为站点可以在没有用户登录的情况下工作,但如果他们已登录(auth cookie将存在),则站点需要显示某些事物和隐藏他人.
Web服务器上还有其他安全预防措施,因此在客户端具有不正确的身份验证cookie的情况下没有任何损害,但该网站使其看起来像是已登录,因为它会删除cookie并拒绝用户.