WebAPI,JSON.Net和失去小数精度

我使用WebAPI和JSON.Net遇到了一个奇怪的问题。 当反序列化已提交给我的API的JSON时,我似乎正在失去精确度! 我将小数提交到3位小数,但当值在我的对象中实现时,它只有2位小数! 我提交的JSON看起来像这样: { id: 1, name: ‘mock data’, value: 123.456 } 这绑定到一个看起来像这样的类: public class MockObject { public int Id { get; set; } public string Name { get; set; } public decimal Value { get; set; } } 为了完整性,这基本上就是我的WebAPI方法: public HttpResponseMessage Post (MockObject data) { // do something with the value here and […]

匿名类型到实际类重构

有没有一种简单的方法可以将匿名类型重构为类? 我经常使用匿名类型对我的代码进行原型设计,然后必须返回并重新实现各种类,因为它们需要在本地范围之外使用。 我正在使用resharper,并想知道是否有一个简单的方法来做到这一点。

使用reflection获取类型

我正在尝试使用reflection获取我的类的属性类型,但它返回我唯一的RuntimePropertyInfo – 作为类型的名称。 我有对象MyObject actualData – 它包含属性 – “name”作为字符串,“Item”作为我的类型DatumType 当我调试时,我可以看到,actualData有2个属性,第一个是字符串类型,第二个是DatumType,但是当我使用它时: string typeName = actualData.getType().getProperty(“Item”).getType().Name – 它返回RuntimePropertyInfo,而不是DatumType 你能看出我做错了什么吗? 我正在使用C# – .Net 4.0。 非常感谢!

使用父ID C#将平面列表映射到分层列表

我有一个平面的类别列表,如以下类所示 public class FlatCategoryList { public List Categories { get; set; } } public class FlatCategory { public string ID { get; set; } public string Name { get; set; } public string ParentID { get; set; } } 我正在尝试将我的平面类别列表映射到一个非常规的结构,如下所示: public class HieraricalCategoryList { public List Categories { get; set; } } public class Category […]

如何让Linq to SQL识别动态存储过程的结果集?

我正在使用Linq-to-SQL和SQL Server后端(当然)作为项目的ORM。 我需要从一个从动态创建的表返回的存储过程中获取结果集。 这是proc的样子: CREATE procedure [RetailAdmin].[TitleSearch] ( @isbn varchar(50), @author varchar(50), @title varchar(50)) as declare @L_isbn varchar(50) declare @l_author varchar(50) declare @l_title varchar(50) declare @sql nvarchar(4000) set @L_isbn = rtrim(ltrim(@isbn)) set @l_author = rtrim(ltrim(@author)) set @l_title = rtrim(ltrim(@title)) CREATE TABLE #mytemp( [storeid] int not NULL, [Author] [varchar](100) NULL, [Title] [varchar](400) NULL, [ISBN] [varchar](50) NULL, […]

SetForegroundWindow仅在visual studio打开时工作

我正在尝试用c#设置一个进程窗口到前台/焦点(从那个时候没有焦点的应用程序),因此我使用user32.dll static extern bool SetForegroundWindow(IntPtr hWnd)方法: [DllImport(“user32.dll”)] [return: MarshalAs(UnmanagedType.Bool)] static extern bool SetForegroundWindow(IntPtr hWnd); public void setFocus() { SetForegroundWindow(process.MainWindowHandle); } 一切都工作得很好,但只有当我打开Visual Studio 2008时,我甚至不需要从VS08启动应用程序,它足以让项目打开它。 当我关闭项目时,我的应用程序无法将另一个窗口设置为前景。 唯一的结果是,在任务栏中,另一个窗口突出显示为蓝色。 我将再次使用VS08打开我的项目它的工作正常。 我没有丝毫想法为什么……我的问题可能是他不能导入dll但是它不会高亮,而其他win32函数就像static extern bool ShowWindow(IntPtr hWnd, IntPtr status); 即使项目结束也在工作。 针对这个问题的任何解决方案或提示? 编辑: 我读了这个函数的评论,我知道我的应用程序没有焦点,所以我尝试了这个: [DllImport(“user32.dll”)] static extern bool SetForegroundWindow(IntPtr hWnd); [return: MarshalAs(UnmanagedType.Bool)] [DllImport(“user32.dll”)] static extern bool AllowSetForegroundWindow(int procID); [DllImport(“user32.dll”)] private static extern […]

ASP.NET C#将用户添加/更新到角色

大家好我有一个页面显示住宿信息,然后是在DetailsView中创建该信息的人的UserID。 我还有一个按钮,应该看看UserID和单击时将该userID转换为用户名,以便我可以使用该用户名将人员角色更改为租用者。 但是我不确定使用C#如何从详细信息视图中获取UserID进行转换并更新角色。 有任何想法吗? 标记 @Tim 这是我添加的代码: public partial class adminonly_approval : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } void DetailsView1_ItemCommand(Object sender, DetailsViewCommandEventArgs e){ if (e.CommandName == “SetToRenter”) { // if UserID is in second row: DetailsViewRow row = DetailsView1.Rows[9]; // Get the Username from the appropriate cell. // In this example, […]

asp.net mvc客户端validation不起作用?

出于某种原因,我的客户端validation似乎不起作用: 这是我的HTML: @using (Html.BeginForm(“Create”, “Home”, FormMethod.Post)) { @Html.ValidationSummary(true) Select Client_ID: @foreach (var item in Model.ClientId) { @item } @Html.LabelFor(model => model.UserModel.name) @Html.EditorFor(model => model.UserModel.name) @Html.ValidationMessageFor(model => model.UserModel.name) @Html.LabelFor(model => model.UserModel.password) @**@ @Html.EditorFor(model => model.UserModel.password) @Html.ValidationMessageFor(model => model.UserModel.password) @Html.LabelFor(model => model.UserModel.email) @**@ @Html.EditorFor(model => model.UserModel.email) @Html.ValidationMessageFor(model => model.UserModel.email) Select: Company End-User 这是我的模型: public class CreateUserModel { […]

.net随机生成器是如何实现的?

我指的是.net / c#中的标准(?)随机生成器 Random random = new Random(seed); random.next(); 我知道文献中有数十种或数百种方法,但我无法找出.net框架目前使用哪种方法? 提问的原因:如果我绘制了很多随机变量,我是否会返回相同的序列。 我知道一些RNG有这种不良特性。

为什么我不能从System.Enum抽象类派生?

MSDN将System.Enum定义为抽象类: [SerializableAttribute] [ComVisibleAttribute(true)] public abstract class Enum : ValueType, IComparable, IFormattable, IConvertible 并且MSDN也对抽象类做出了这样的陈述: 无法实例化抽象类。 抽象类的目的是提供多个派生类可以共享的基类的通用定义。 但我根本无法从System.Enum派生。 根据Jeffery Richter在他的书“CLR via C#”中的说法,C#编译器禁止这种推导。 我检查了System.Enum的成员,其中大部分是静态的,这是合理的,因为它无法实例化,静态方法不需要调用对象实例。 但是也有一些实例方法,比如GetHashCode()和GetTypeCode()。 所以,我的第一个问题是,如果System.Enum无法实例化或派生,那么如何调用这些实例方法呢? 这不是一种悖论吗? 我知道我可以使用以下方法来调用这些实例方法,但为什么呢? 是否创建了某种System.Enum或派生类型对象实例 ? 什么时候? 由谁? public enum Days:byte { Saturday, Sunday, Monday, Tuesday, Wednesday, Thursday, Friday }; Days d = Days.Friday; d.GetTypeCode(); d.GetHashCode();