小编Sam*_*Sam的帖子

当JSON.NET序列化时,属性顺序会搞乱

在我的POCO对象中,我经常从其他POCO对象继承.当我使用JSON.NET序列化POCO对象时,属性的顺序变得混乱.

说,我有一个看起来像这样的Person类:

public class Person
{
   public int Id {get; set;}
   public string FirstName {get; set;}
   public string LastName {get; set;}
}
Run Code Online (Sandbox Code Playgroud)

然后我有一个继承自Person类的Employee类:

public class Employee : Person
{
   public int DepartmentId {get; set;}
   public string Title {get; set;}
}
Run Code Online (Sandbox Code Playgroud)

当我序列化Employee类时,我的JSON对象如下所示:

{
   "departmentId": 123,
   "title": "Manager",
   "id": 1234567,
   "firstName": "John",
   "lastName": "Smith"
}
Run Code Online (Sandbox Code Playgroud)

两个问题:

  1. 我的JSON对象属性的顺序是否重要?
  2. 即使属性的顺序无关紧要,我怎样才能使属性处于正确的顺序,即我希望首先看到Person类属性,然后是Employee类属性.

谢谢您的帮助.

c# serialization json json.net

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

尝试在DocumentDB中创建文档时获取"任务已取消"

当我尝试使用以下代码在我的DocumentDB数据库中创建文档时,代码挂起我调用CreateDocumentAsync()的地方,并最终给我"任务被取消"错误.

知道为什么吗?

public static async Task<Employee> CreateEmployee(Employee emp)
{
   try
   {
      using (client = new DocumentClient(new Uri(endPointUrl), authorizationKey))
      {
         //Get the database
         var database = await GetDatabaseAsync();

         //Get the Document Collection
         var collection = await GetCollectionAsync(database.SelfLink, "Employees");

         await client.CreateDocumentAsync(collection.SelfLink, emp);

         // Do something else with employee
      }
   }
   catch
   {
      // Handle error
   }

   return emp;
}
Run Code Online (Sandbox Code Playgroud)

PS为简洁起见,我没有包含GetDatabaseAsync()和GetCollectionsAsync()部分的代码.请注意,员工文档是在我的数据库中创建的.因此,此代码清楚地连接到DocumentDB数据库,查找集合并创建文档.

只是不确定为什么它会挂起并最终返回错误.

*****更新******

这是错误详细信息:任务已取消.

描述:执行当前Web请求期间发生未处理的异常.请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息.

异常详细信息:System.Threading.Tasks.TaskCanceledException:任务已取消.来源错误:

HttpResponseMessage response = await client.PostAsJsonAsync("api/hr/register", employee);
Run Code Online (Sandbox Code Playgroud)

堆栈跟踪:

[TaskCanceledException: A task was canceled.]
   System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) +10915395
   System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) …
Run Code Online (Sandbox Code Playgroud)

c# azure-cosmosdb

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

Web API中的异常处理

在我的Web API项目中,我创建了子项目(类库),我处理实际的数据处理操作.我的后端数据库是DocumentDB.

我的问题是如何告诉我的Web API操作方法我在类库中的数据方法中可能遇到的任何错误?一旦我的Web API方法知道错误,我就可以返回Http状态500或类似的东西,但我不确定我应该在catch部分(见下文)中有什么,以及我如何通知调用Web API方法遇到错误?

--- Web API方法---

public async Task<IHttpActionResult> DoSomething(Employee emp)
{
   var employeeRecord = await MyClassLibrary.DoSomethingWithEmployee(emp);

   // Here, I want to check for errors
}
Run Code Online (Sandbox Code Playgroud)

---类库代码---

public static async Task<Employee> DoSomethingWithEmployee(Employee emp)
{
   try
   {
      // Logic here to call DocumentDB and create employee document
   }
   catch
   {
      // This is where I catch the error but how do I notify the calling Web API method that there was an error?
   }
}
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc asp.net-web-api2

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

必须提供"SignInScheme"选项

我正在创建一个仅使用Facebook/Google身份验证的ASP.NET 5 MVC 6应用程序.我也试图在没有整个ASP.NET身份的情况下使用cookie中间件 - 遵循这篇文章:https: //docs.asp.net/en/latest/security/authentication/cookie.html

所以我开始使用没有身份验证的空白应用程序然后添加了Microsoft.AspNet.Authentication.Cookies和Microsoft.AspNet.Authentication.Facebook NuGet包,以便采用非常简约的方法,其中我不包含任何我不包含的内容需要.

我将以下代码添加到Startup.cs中的Configure中,但我得到"必须提供SignInScheme选项"错误.知道我错过了什么吗?

app.UseCookieAuthentication(options =>
            {
                options.AuthenticationScheme = "MyCookieMiddlewareInstance";
                options.LoginPath = new PathString("/Accounts/Login/");
                options.AccessDeniedPath = new PathString("/Error/Unauthorized/");
                options.AutomaticAuthenticate = true;
                options.AutomaticChallenge = true;
            });

            app.UseFacebookAuthentication(options =>
            {
                options.AppId = "myFacebookAppIdGoesHere";
                options.AppSecret = "myFacebookAppSecretGoesHere";
            });
Run Code Online (Sandbox Code Playgroud)

c# cookies facebook-authentication asp.net-core-mvc asp.net-core

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

在 Cosmos DB 中获取文档大小

如何获取或计算存储在 Cosmos DB 中的文档的大小?

这是否已经存储在文档中?

javascript azure azure-cosmosdb

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

Xamarin项目没有PCL选项

我刚刚进入基于Xamarin Forms的应用程序开发和大多数文章 - 如果不是全部 - 我遇到的建议我使用可移植类库(PCL)方法创建一个新的Xamarin Forms项目.

我正在运行最新版本的Visual Studio 2017 15.5.1,当我启动一个新的Xamarin Forms项目时,我得到以下屏幕,没有PCL选项.

在此输入图像描述

我错过了什么吗?

xamarin xamarin.forms visual-studio-2017

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

将自定义图标导入 React Native 0.62

我正在尝试在我的React Native 0.62.2应用程序中导入和使用我自己的自定义图标。

我按照此处概述的步骤https://github.com/oblador/react-native-vector-icons#custom-fonts但到目前为止图标没有显示。

以下是我遵循的步骤:

  1. 创建我的图标集并将其转换为https://icomoon.io上的字体
  2. 从下载zip文件IcoMoon并将ttf文件放入./src/assets/fonts文件夹
  3. 然后我创建了react-native-config.js文件并放置在根目录中。这个文件中的代码在下面
  4. 在我的组件文件夹下,我创建了CustomIcon.js- 请参阅下面的代码
  5. 我还将下载的selection.json文件中包含的zip文件放置在IcoMoonCustomIcon.js
  6. 然后我使用CustomIcon如下所示

所以这里的代码是这样的:

react-native-config.js文件如下所示:

module.exports = {
    project: {
      ios: {},
      android: {},
    },
    assets: ['./src/assets/fonts/']
  };
Run Code Online (Sandbox Code Playgroud)

CustomIcon.js文件如下所示:

import { createIconSetFromIcoMoon } from 'react-native-vector-icons';

import icoMoonConfig from './selection.json';
export default createIconSetFromIcoMoon(icoMoonConfig, 'StreamLine', '../../../assets/fonts/streamline-icon-set-1.ttf');
Run Code Online (Sandbox Code Playgroud)

这是我使用图标的方式:

import CustomIcon from '../common_components/fonts/CustomIcon';

<CustomIcon name="home-outline" /> …
Run Code Online (Sandbox Code Playgroud)

fonts react-native react-native-vector-icons icomoon

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

React Native App抛出domain=FBSOpenApplicationServiceErrorDomain,code=3错误

我已经在我的 React Native 应用程序中更新了相当多的 NPM 包,现在尽管它看起来构建得很好,但它启动并立即在 iOS 模拟器上崩溃。它抛出的错误是:

无法在模拟器上启动应用程序,处理命令时遇到错误(domain = FBSOpenApplicationServiceErrorDomain,code = 3)打开“org.reactjs.native.example.myappname”的请求失败。该进程确实启动了,但后来退出或崩溃了。

在这些 npm 包更新之前,该应用程序运行良好。我找到了一些建议,例如运行rm -rf ios/build、清理项目等。我尝试了所有这些,但仍然遇到相同的错误。

关于如何解决这个问题有什么建议吗?顺便说一句,这是一个react-native: "^0.65.1"应用程序,Xcode 版本是 12.4。

xcode react-native

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

在 .NET MAUI 中创建围绕用户头像的圆形边框

在我的 .NET MAUI 应用程序中,我使用AvatarViewin.NET MAUI Community Toolkit 创建一个漂亮的圆形用户头像,这非常容易做到。

我现在想在图像周围放置一个漂亮的边框,但没有得到所需的效果,因为当我设置BorderWidth的属性时AvatarView,它将边框放置在图像“内部”,这使得可见区域更小。我实际上想将边框放在图像“外部”,这样我就不会丢失可见区域中的任何内容。这是演示这一点的图像:

在此输入图像描述

顺便说一句,我尝试设置HeightRequestWidthRequst更大,然后设置 ,BorderWidth但它似乎仍然使可见区域变小,因为所做的只是使主图像变大,并且设置了边框,可见区域仍然不显示附加的数据/区域。

这是我当前的代码,它将边框放置在图像中——我可以放心地假设这是标准行为。

<mct:AvatarView
     ImageSource="{Binding UserInfo.AvatarUrl}"
     BorderColor="{StaticResource UILightGray}"
     BorderWidth="10"
     CornerRadius="70"
     HeightRequest="140"
     WidthRequest="140"/>
Run Code Online (Sandbox Code Playgroud)

我怎样才能达到我想要的效果?基本上,我希望边框位于图像之外,从而有效地向图像大小添加大约 10 个像素。

或者,我不介意将边框放置在图像内,但我需要一种方法使实际图像小 10 像素,以便可见区域保持不变。

如何通过使用或不使用 .NET MAUI Community Toolkit 来实现此目的?

maui

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

保护整个ASP.NET 5 MVC 6应用程序

如果我想保护我的MVC应用程序中的特定部分,我将使用[Authorize]ActionMethod.我也知道我可以将它用于整个控制器,这样我就不必为其中的每个ActionMethod指定它.

我想在全球范围内要求授权,并且希望能够仅在少数几个地方允许匿名用户.如何要求用户在全球范围内获得授权,并允许匿名用户使用一些ActionMethods?

asp.net-authorization asp.net-identity asp.net-core-mvc asp.net-core

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