小编jbk*_*kkd的帖子

在C#中使用await内部属性

可能重复:
如何从getter或setter调用异步方法?

我正在尝试实现一个在其中使用Sqlite等待的属性:

public int ID {
        get
        {
            if (_id != null)
            {
                return _id;
            }
            if (string.IsNullOrEmpty(ImageName))
            {
                return -1;
            }
            var query = CurrentConnection.Table<Image>().Where(i => i.ImageName == ImageName);
            var result = await query.ToListAsync();
            ...other code
Run Code Online (Sandbox Code Playgroud)

但是,由于属性未设置为等待(尝试过,不起作用),我不能在属性中使用await.

除了使用方法而不是属性之外,还有什么方法可以解决这个问题?

.net c# async-await c#-5.0

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

从Facebook API获取高分辨率图片

用于照片的Facebook FQL API 指出从API返回的照片的最大分辨率为960x960:

Photo对象具有等效的src连接.使用photo_src FQL,您可以检索具有以下尺寸的图像:960,720,480,320,180,130,75像素.

但是,某些图像以更高的分辨率上传.有时甚至更高.

定期浏览Facebook时,您可以看到这些图片并查看其完整尺寸.但是,我似乎无法找到任何方法来获得API中的原始分辨率.

这可能吗,我错过了什么?如果不是 - 为什么?

facebook photo facebook-fql facebook-graph-api

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

SQLite for windows phone 8无法编译

我已从此链接下载了SQLite的Visual Studio 2012的Windows Phone 8扩展.

但是,在编译时,我收到此错误:

引用的SDK"SQLite.WP80,Version = 3.7.15.2"不支持正在构建"Any CPU"的项目的处理器体系结构.请考虑将项目的目标处理器体系结构(在visual studio中,这可以通过Configuration Manager完成)更改为SDK支持的体系结构之一:"x86,ARM".FacebookRandomizerWindowsPhone

显然,我已经尝试在Visual Studio 2012中更改项目中的平台目标,就像我开发的Windows 8应用程序一样,这样做有效.

但是,在Windows Phone 8应用程序中,我无法更改平台目标,只能更改顶部的平台,而不会更改平台目标:

视觉工作室

有人有这个问题吗?

c# sqlite visual-studio windows-phone-8

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

调用SuspensionManager.SaveAsync()时的异常

我正在构建一个Windows 8应用程序,并提出以下异常:

SuspensionManager失败

运行以下代码时:

private async void OnSuspending(object sender, SuspendingEventArgs e)
{
    var deferral = e.SuspendingOperation.GetDeferral();
    await SuspensionManager.SaveAsync();
    deferral.Complete();
}
Run Code Online (Sandbox Code Playgroud)

该方法的第三行发生异常,并没有真正提供任何细节.

我在网上找不到任何有用的东西.谁看过这个吗?

//编辑

这可能与我使用dynamicWindows 8 Facebook SDK 的类型变量这一事实有关.

dynamic变量不允许?

//编辑2

这是dynamic变量的用法:

dynamic result = await FB.GetTaskAsync("fql", parameters);
if (result.data.Count > 0)
{
    return result.data[0].src_big as string;
}
Run Code Online (Sandbox Code Playgroud)

以及异常的调用堆栈:

mscorlib.dll!System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(System.Threading.Tasks.Task task) + 0x5e bytes  
mscorlib.dll!System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task task) + 0x35 bytes 
mscorlib.dll!System.Runtime.CompilerServices.TaskAwaiter.GetResult() + 0x16 bytes   
FacebookRandomizer.exe!FacebookRandomizer.App.OnSuspending(object sender, Windows.ApplicationModel.SuspendingEventArgs e) Line 86 + 0xa5 bytes  C#
[Native to …
Run Code Online (Sandbox Code Playgroud)

c# exception facebook-c#-sdk windows-8

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

使用Json.net反序列化时出现"意外的令牌:StartObject"

我有一个C#WebClient返回的以下JSON:

"\n\n\n{\n \"resultCount\":1,\n \"results\": [\n{\"wrapperType\":\"artist\", \"artistType\":\"Artist\", \"artistName\":\"Jack Johnson\", \"artistLinkUrl\":\"http://itunes.apple.com/us/artist/jack-johnson/id909253?uo=4\", \"artistId\":909253, \"amgArtistId\":468749, \"primaryGenreName\":\"Rock\", \"primaryGenreId\":21}]\n}\n\n\n"
Run Code Online (Sandbox Code Playgroud)

或者,更清楚地说:

{
   "resultCount ":1,
   "results ":[
      {
         "wrapperType ":"artist ",
         "artistType ":"Artist ",
         "artistName ":"Jack Johnson ",
         "artistLinkUrl ":"http://itunes.apple.com/us/artist/jack-johnson/id909253?uo=4 ",
         "artistId ":909253,
         "amgArtistId ":468749,
         "primaryGenreName ":"Rock ",
         "primaryGenreId ":21
      }
   ]
}
Run Code Online (Sandbox Code Playgroud)

我已经尝试将其反序列化为类,如下所示:

 thejsonresult = JsonConvert.DeserializeObject<JsonResult>(WebRequest.Json);
Run Code Online (Sandbox Code Playgroud)

但收到以下错误:

读取字符串出错.意外的令牌:StartObject.第7行,第2位.

我很迷茫,找不到任何关于此的文件.有人知道吗?

c# json json.net

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

调用第二级基类构造函数

在C#中,我有一个类,foo它继承自类bar,而类继承自类foobar.

foo构造函数中,我想foobar直接调用构造函数,而不是调用bar构造函数.我试过这样的事情:

 public foo(int i): base : base(i)
Run Code Online (Sandbox Code Playgroud)

显然这不起作用.如果不通过bar构造函数,你将如何使它工作?

c# oop inheritance encapsulation

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

sql删除级联不起作用

我有一个带有2个表的Microsoft SQL数据库:dog和cat.

"dog"表有一个名为"food"的主键列,它与"cat"表中的一个名为"food"的列有关,该表用作外键.

表之间的关系有一个"on delete cascade"规则集,所以当我从"dog"表中删除一行时,"cat"表中的relveant行也应该被删除.

但是"cat"表中的行会被net删除,它们会保留.我使用Microsoft SQL数据库管理器删除"dog"表中的行.

知道为什么会这样吗?我是否需要使用特殊的delete sql命令以这种方式删除行?

//编辑

表的脚本是:

USE [VELES]
GO
/****** Object:  Table [dbo].[Periods]    Script Date: 01/18/2011 14:52:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Periods](
    [PeriodID] [int] IDENTITY(1,1) NOT FOR REPLICATION NOT NULL,
    [PeriodName] [nvarchar](50) COLLATE Hebrew_CS_AS NULL,
    [PeriodStartDate] [smalldatetime] NOT NULL,
    [PeriodEndDate] [smalldatetime] NOT NULL,
 CONSTRAINT [PK_Periods] PRIMARY KEY CLUSTERED 
(
    [PeriodID] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]


USE [VELES]
GO
/****** Object:  Table [dbo].[Exams] …
Run Code Online (Sandbox Code Playgroud)

sql sql-server cascade cascading-deletes

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