System.ObjectDisposedException not treated in facebook windows phone app

user3887722

In this line appears error: "Cannot access a disposed object".

db._fbcontacts.InsertOnSubmit(new FacebookContactsList { Name = FBName });

What can a reason of it?

There is the method where I want to write name of user's account from facebook in localdatabase

public void LoadUserInfo()
     {
         using (FacebookDataContext db = new FacebookDataContext(DBConnectionstring))
         {
             FacebookClient fb = new FacebookClient(App.AccessToken);
             fb.GetCompleted += (o, e) =>
             {
                 var result = (IDictionary<string, object>)e.GetResultData();
                 var FBName = String.Format("{0} {1}", (string)result["first_name"], (string)result["last_name"]);
                 db._fbcontacts.InsertOnSubmit(new FacebookContactsList { Name = FBName });
                 db.SubmitChanges();
             };
             fb.GetTaskAsync("me");
         }
     }
user1228

Your callback method is being called after the FacebookDataContext has been disposed.

This is the code that executes immediately

 using (FacebookDataContext db = new FacebookDataContext(DBConnectionstring))
 {
     FacebookClient fb = new FacebookClient(App.AccessToken);
     // no callback method is being executed here!  
     fb.GetTaskAsync("me");
 }

then, sometime later when GetTaskAsync completes, the following is executed:

var result = (IDictionary<string, object>)e.GetResultData();           
/*blah blah snip*/
db._fbcontacts.InsertOnSubmit(new FacebookContactsList { Name = FBName });
db.SubmitChanges();

But you can see from the first code block that, upon exiting the scope of the using statement, db has already been disposed.

Instead, you'll need to pull db out of the using block and dispose of it manually...

 public void LoadUserInfo()
 {
     FacebookDataContext db = new FacebookDataContext(DBConnectionstring);
     FacebookClient fb = new FacebookClient(App.AccessToken);
     fb.GetCompleted += (o, e) =>
     {
         try
         {
             /*blah fricken blah snipped */
             db.SubmitChanges();
         }finally{
             if(db != null) db.Dispose();
         }
     };
     fb.GetTaskAsync("me");
 }

Or you can pull the instantiation of the context inside of the event handler.

public void LoadUserInfo()
{
    FacebookClient fb = new FacebookClient(App.AccessToken);
    fb.GetCompleted += (o, e) =>
    {
        /*yadda mfing blah */
        using (FacebookDataContext db = new FacebookDataContext(DBConnectionstring))
        {
            db._fbcontacts.InsertOnSubmit(new FacebookContactsList { Name = FBName });
            db.SubmitChanges();
        }
    };
    fb.GetTaskAsync("me");
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Windows Phone的Windows Store App上的照片捕获

来自分类Dev

How to register Windows Phone app as handler of url

来自分类Dev

Windows Phone 8:通过代码在应用中打开Facebook页面

来自分类Dev

Windows Phone 8的System.Threading API

来自分类Dev

Windows Phone 8.1 Facebook无法注销以连接不同用户

来自分类Dev

Windows Phone - link to the publisher in the app store

来自分类Dev

Windows Phone 8.1的Facebook登录

来自分类Dev

Facebook Windows Phone应用程序未处理System.ObjectDisposedException

来自分类Dev

ILGenerated方法中的System.ObjectDisposedException

来自分类Dev

Windows Phone 8 Facebook LoginWithApp不再对我有用

来自分类Dev

Windows Phone 8.1 App在ShowShareUI()上崩溃

来自分类Dev

在Windows Phone 8.1 App中对齐按钮

来自分类Dev

Windows Phone 8上未拦截System.Net.WebException

来自分类Dev

关闭表单时,我在System.Windows.Forms.dll中发生类型为'System.ObjectDisposedException'的异常,但未在用户代码中处理

来自分类Dev

WebSocket通信引发System.ObjectDisposedException

来自分类Dev

a href onclick not working in windows phone cordova app

来自分类Dev

UWP App在Windows Phone上的布局异常

来自分类Dev

Facebook C#SDK Windows Phone注销

来自分类Dev

Windows Phone 7 Facebook App身份验证问题

来自分类Dev

将Windows Phone App上载到Windows应用商店

来自分类Dev

Windows Phone 8 App升级到Windows Phone 8.1

来自分类Dev

Windows Phone 8.1 Facebook无法注销以连接不同用户

来自分类Dev

Windows Phone 8.1 App在App Store上的发行

来自分类Dev

如何通过Facebook共享Windows Phone应用程序?

来自分类Dev

如何使用System.Windows.Interactivity Windows Phone 8.1

来自分类Dev

在Windows Phone App 8.1中创建WriteableBitmap?

来自分类Dev

如何为Windows Phone 8.1 App创建System.Net.Sockets.Socket实例

来自分类Dev

.net 核心 IsInRoleAsync 'System.ObjectDisposedException'

来自分类Dev

调用 Close 后抛出 System.ObjectDisposedException

Related 相关文章

  1. 1

    Windows Phone的Windows Store App上的照片捕获

  2. 2

    How to register Windows Phone app as handler of url

  3. 3

    Windows Phone 8:通过代码在应用中打开Facebook页面

  4. 4

    Windows Phone 8的System.Threading API

  5. 5

    Windows Phone 8.1 Facebook无法注销以连接不同用户

  6. 6

    Windows Phone - link to the publisher in the app store

  7. 7

    Windows Phone 8.1的Facebook登录

  8. 8

    Facebook Windows Phone应用程序未处理System.ObjectDisposedException

  9. 9

    ILGenerated方法中的System.ObjectDisposedException

  10. 10

    Windows Phone 8 Facebook LoginWithApp不再对我有用

  11. 11

    Windows Phone 8.1 App在ShowShareUI()上崩溃

  12. 12

    在Windows Phone 8.1 App中对齐按钮

  13. 13

    Windows Phone 8上未拦截System.Net.WebException

  14. 14

    关闭表单时,我在System.Windows.Forms.dll中发生类型为'System.ObjectDisposedException'的异常,但未在用户代码中处理

  15. 15

    WebSocket通信引发System.ObjectDisposedException

  16. 16

    a href onclick not working in windows phone cordova app

  17. 17

    UWP App在Windows Phone上的布局异常

  18. 18

    Facebook C#SDK Windows Phone注销

  19. 19

    Windows Phone 7 Facebook App身份验证问题

  20. 20

    将Windows Phone App上载到Windows应用商店

  21. 21

    Windows Phone 8 App升级到Windows Phone 8.1

  22. 22

    Windows Phone 8.1 Facebook无法注销以连接不同用户

  23. 23

    Windows Phone 8.1 App在App Store上的发行

  24. 24

    如何通过Facebook共享Windows Phone应用程序?

  25. 25

    如何使用System.Windows.Interactivity Windows Phone 8.1

  26. 26

    在Windows Phone App 8.1中创建WriteableBitmap?

  27. 27

    如何为Windows Phone 8.1 App创建System.Net.Sockets.Socket实例

  28. 28

    .net 核心 IsInRoleAsync 'System.ObjectDisposedException'

  29. 29

    调用 Close 后抛出 System.ObjectDisposedException

热门标签

归档