我一直试图让ActionBarSherlock工作并遇到一些问题.我遇到的一个问题是在尝试构建它时出现以下消息:
Plugin with id 'android-library' not found
Run Code Online (Sandbox Code Playgroud)
特别:
D:\Projects\Android\actionbarsherlock>D:\Projects\Android\gradlew --info build
Starting Build
Settings evaluated using empty settings script.
Projects loaded. Root project using build file
'D:\Projects\Android\actionbarsherlock\build.gradle'.
Included projects: [root project 'actionbarsherlock']
Evaluating root project 'actionbarsherlock' using build file
'D:\Projects\Android\actionbarsherlock\build.gradle'.
FAILURE: Build failed with an exception.
* Where:
Build file 'D:\Projects\Android\actionbarsherlock\build.gradle' line: 1
* What went wrong:
A problem occurred evaluating root project 'actionbarsherlock'.
> Plugin with id 'android-library' not found.
Run Code Online (Sandbox Code Playgroud)
我把它视为一个单独的线程中的ABS问题,所以在这里我很好奇如何解决一般问题:
Plugin with id 'android-library' not found
Run Code Online (Sandbox Code Playgroud)
这是build.gradle:
apply …
Run Code Online (Sandbox Code Playgroud) 而已.这很简单.我有一个edmx,并希望能够动态地查询表和(希望)动态构建该表.那可能吗?
=========
更新:
我在上下文中包含了所有数据库表,但没有包含视图或SP.我们有很多类型信息的表(带有id).因此,例如,颜色或文件类型或协议类型.我希望能够对可能包含类型信息(File,FileType)的表进行类型(文件)查询,并使用id返回它.
因此,我可能会寻找...业务单位(或颜色或文件),代码将关闭并搜索BusinessUnit(或颜色或文件)和BusinessUnitType(或ColorType或FileType)的上下文.如果它找到任何一个,它将查询它并将返回所有行,以便我可以看到它是否包含类型信息(我稍后将其细化为仅返回ID和描述,缩写或名称字段以及限制行等)并能够找到特定任何东西的相关ID.
我有一个由Angular提供的Web API项目,我希望使用JWT令牌来保护它.我已经进行了用户/通过验证,所以我认为我只需要实现JWT部分.
我相信我已经确定了JwtAuthForWebAPI所以使用它的一个例子会很棒.
我假设任何未使用[Authorize]修饰的方法都会像往常一样运行,并且如果客户端传递的令牌不匹配,则[Authorize]修饰的任何方法都将为401.
我还不知道如何在初始身份验证时将令牌发送回客户端.
我正在尝试使用魔术字符串开始,所以我有这个代码:
RegisterRoutes(GlobalConfiguration.Configuration.Routes);
var builder = new SecurityTokenBuilder();
var jwtHandler = new JwtAuthenticationMessageHandler
{
AllowedAudience = "http://xxxx.com",
Issuer = "corp",
SigningToken = builder.CreateFromKey(Convert.ToBase64String(new byte[]{4,2,2,6}))
};
GlobalConfiguration.Configuration.MessageHandlers.Add(jwtHandler);
Run Code Online (Sandbox Code Playgroud)
但我不确定最初是如何回到客户端的.我想我理解如何在客户端上处理这个问题,但是如果你还可以展示这种交互的Angular方面,那么也可以获得奖励积分.
我目前在Node/amqp应用程序中使用Q promise库.我已经读过Q对像BlueBird或Vow这样的库的表现......不太好.
不幸的是,我无法弄清楚如何使用BlueBird(或Vow)来替换我目前的Q使用模式.
这是一个例子:
this.Start = Q(ampq.connect(url, { heartbeat: heartbeat }))
.then((connection) => {
this.Connection = connection;
return Q(connection.createConfirmChannel());
})
.then((channel) => {
this.ConfirmChannel = channel;
channel.on('error', this.handleChannelError);
return true;
});
Run Code Online (Sandbox Code Playgroud)
我应该提到 - 我正在使用TypeScript ...在这个例子中,我正在接受amqplib的承诺,并从中创建一个Q承诺(因为我不喜欢amqplib的承诺).我如何使用BlueBird或Vow做到这一点?
另一个例子是:
public myMethod(): Q.Promise<boolean> {
var ackDeferred = Q.defer<boolean>();
var handleChannelConfirm = (err, ok): void => {
if (err !== null) {
//message nacked!
ackDeferred.resolve(false);
}
else {
//message acked
ackDeferred.resolve(true);
}
}
...some other code here which invokes callback above...
return ackDeferred.promise;
}
Run Code Online (Sandbox Code Playgroud)
这种模式是如何实施的? …
我好像在这里遇到两个问题之一.要么像以下错误:
java.lang.IllegalStateException: Event bus [Bus "default"] accessed from non-main thread Looper
Run Code Online (Sandbox Code Playgroud)
或者,如果我设法"解决"那个问题,我根本就不会在订阅者中收到该事件.
目前,我有一个类,从几个来源拼凑,分类巴士:
public class MainThreadBus extends Bus {
private static Bus _bus;
private Handler _handler = new Handler(Looper.getMainLooper());
public MainThreadBus() {
if (_bus == null) {
_bus = new Bus();
}
}
@Override public void register(Object obj) {
_bus.register(obj);
}
@Override public void unregister(Object obj) {
_bus.unregister(obj);
}
@Override public void post(final Object event) {
if (Looper.myLooper() == Looper.getMainLooper()) {
_bus.post(event);
} else {
_handler.post(new Runnable() {
@Override public …
Run Code Online (Sandbox Code Playgroud) 我正在寻找推荐的方法来通过这个库处理意外的通道关闭。
我从文档中收集到有一个事件发出,但我不太清楚如何最好地检测该事件(我知道这很简单,但我对一般事件发出不是很清楚,所以请耐心等待) ,而且,我应该用它做什么并不明显。
我应该跟踪哪些订阅者使用该频道然后重新订阅他们吗?其他人做什么?
更重要的是 - 是否没有办法检查 Channel(或ConfirmedChannel)对象,并确定它是否仍然“良好”?这似乎比事件捕获方法更可取,但我似乎找不到一种方法来做到这一点(好吧,这并不完全正确 - 我已经通过检查 Channel 上的“accept”方法做了一些事情确定它是否坏了,但这看起来很黑客)。
任何指导表示赞赏。
我有一个NodeJS应用程序(内置在Visual Studio中),它使用TypeScript和MongoDB.
我编写了一个小型库,它将MongoDB驱动程序包装在一些TypeScript类中,直到今天它才开始表现.
如果我在我的一个库文件的顶部包含此行:
/// <reference path='./_scripts/typings/mongodb/mongodb.d.ts' />
Run Code Online (Sandbox Code Playgroud)
它开始简要地构建,然后开始抱怨"重复标识符",以及其中很多,例如:
Error 6 Type name 'Transform' in extends clause does not reference constructor function for '"stream".Transform'.
Error 7 Type name 'events.EventEmitter' in extends clause does not reference constructor function for 'events.EventEmitter'.
Error 8 Duplicate identifier 'errno'.
Error 9 Duplicate identifier 'code'.
Error 10 Duplicate identifier 'path'.
Run Code Online (Sandbox Code Playgroud)
所以我把它拿出来,一切都很简单,直到我开始看到围绕这一行报告的问题:
import mongodbNS = require('mongodb');
Run Code Online (Sandbox Code Playgroud)
如果我要删除该行,我会看到以下内容的错误:
public Connect: () => Promise<mongodbNS.Db>;
Run Code Online (Sandbox Code Playgroud)
我可以通过添加删除的东西并利用可打开的简短窗口来弥补 - 但显然这不是方法.
什么是?
我曾在一个不同的主题中询问过一个关于GPL +在TPL(异步/等待)中的问题的问题,讨论转向了这样一个问题:使用TPL是否有任何好处.
所以我试图在这里理解答案.
情景大致是这样的:
请注意,这可能会在单个核心计算机上运行,因此并行运行所有调整大小(例如,缩短请求的总长度)不会带来任何好处.
但我的印象是将所有各种调整大小包装到一个方法中并且异步运行将至少将Web API线程暂时返回到池,以处理另一个请求(当常规线程运行调整大小任务时),以及那是件好事.代码如下所示:
public Dictionary<ProfilePhotoSize, Uri> ProcessImages(Stream photoStream)
{
var imgUris = new Dictionary<ProfilePhotoSize, Uri>()
{
ProfilePhotoSize.FiveHundredFixedWidth, ResizeAndUpload(ProfilePhotoSize.FiveHundredFixedWidth, photoStream)},
ProfilePhotoSize.Square220, ResizeAndUpload(ProfilePhotoSize.Square220, photoStream)},
ProfilePhotoSize.Square140, ResizeAndUpload(ProfilePhotoSize.Square140, photoStream)},
ProfilePhotoSize.Square80, ResizeAndUpload(ProfilePhotoSize.Square80, photoStream)},
ProfilePhotoSize.Square50, ResizeAndUpload(ProfilePhotoSize.Square50, photoStream)}
};
return imgUris;
}
Run Code Online (Sandbox Code Playgroud)
和...
var photoUris = await Task.Run(() => _photoService.ProcessImages(photoStream);
Run Code Online (Sandbox Code Playgroud)
所以问题是 - 我是不是基地?也许理论是合理的,但它没有得到很好的实现(也许我需要使用ConfigureAwait)?
这里的现实是什么?