草庐IT

c# - 将 C# 对象发送到 webapi Controller

我正在尝试将C#对象传递给WebAPIController。api配置为存储发布到它的产品类型的对象。我已经使用JqueryAjax方法成功添加了对象,现在我正试图在C#中获得相同的结果。我创建了一个简单的控制台应用程序来向api发送Post请求:publicclassProduct{publicintId{get;set;}publicstringName{get;set;}publicstringCategory{get;set;}publicdecimalPrice{get;set;}}staticvoidMain(string[]args){stringapiUrl=@"htt

c# - LINQ to Entities 无法识别方法 'Int32 IndexOf(System.String, System.StringComparison)' 方法

我已经使用Entityframework执行了一个linq查询,如下所示GroupMastergetGroup=null;getGroup=DataContext.Groups.FirstOrDefault(item=>keyword.IndexOf(item.Keywords,StringComparison.OrdinalIgnoreCase)>=0&&item.IsEnabled)执行此方法时出现如下异常LINQtoEntitiesdoesnotrecognizethemethod'Int32IndexOf(System.String,System.StringCompariso

c# - 谁应该负责关闭流

我正在编写一个创建文件“目录”的应用程序,这些文件可以与其他元数据文件(例如附件和缩略图)一起归属。我正在尝试将目录的接口(interface)抽象到目录的消费者不需要了解用于存储文件的底层文件系统的程度。所以我创建了一个名为IFileSystemAdaptor的接口(interface),如下所示。publicinterfaceIFileSystemAdaptor:IDisposable{voidWriteFileData(stringfileName,Streamdata);StreamReadFileData(stringfilename);voidDeleteFileData(

c# - 如何找到字符串中所有可能的子串?

我想做的是获取一个字符串并返回所有可能的长度大于2的子字符串。因此使用welcome示例:weellccomewelelclcocomomewelcelcolcomcomeandsoon.....我能想到的唯一方法是这样的(完全未经测试):for(inti=0;i但我想知道是否有我不知道的更好的方法(可能使用LINQ)? 最佳答案 这种简单易读的方法怎么样?vartext="welcome";varquery=fromiinEnumerable.Range(0,text.Length)fromjinEnumerable.Range(

c# - 如何在 ASP.NET MVC 4 中获取 Controller 操作的自定义注释属性?

我在ASP.NETMVC中为我的应用程序使用基于权限的授权系统。为此,我创建了一个自定义授权属性publicclassMyAuthorizationAttribute:AuthorizeAttribute{stringRoles{get;set;}stringPermission{get;set;}}这样我就可以通过角色或带有注释的特定权限key来授权用户,例如publicclassUserController:Controller{[MyAuthorization(Roles="ADMIN",Permissions="USER_ADD")]publicActionResultAdd(

c# - 使用 Newtonsoft.Json 解析 JSON 时出错

当我尝试使用Newtonsoft.Json解析我的JSON时出现以下错误Responseresult=JsonConvert.DeserializeObject(unfilteredJSONData);CannotaddpropertystringtoNewtonsoft.Json.Linq.JObject.Propertywiththesamenamealreadyexistsonobject.我无法控制JSON提要,他们只是添加了flags1和flags2。重复的字符串似乎是导致错误的原因,但我不知道如何解决它。在添加新字段之前,此代码运行良好。更新:第一个错误是由使用过时版本的J

c# - 在开头获取多个字符串的相等部分

我有几个大数组/文件名列表,它们的开头相同。像这样:C:\ProgramFiles\CCleaner\...C:\ProgramFiles\CommonFiles\...C:\ProgramFiles(x86)\Adobe\...C:\ProgramFiles(x86)\CommonFiles\...我想提取他们共同的开头部分。在这种情况下:"C:\ProgramFiles"我该怎么做?我想我可能必须一次比较2个字符串并得到相同的开头。如果不手动比较每个字符,我什至不知道该怎么做?然后我必须将每个字符串与其他每个字符串进行比较?会是O(n²)吗?有没有更好、更快的方法?编辑:还有没有L

c# - C# : How to get the response stream? 中的套接字

我正在尝试替换它:voidProcessRequest(objectlistenerContext){varcontext=(HttpListenerContext)listenerContext;UriURL=newUri(context.Request.RawUrl);HttpWebRequest.DefaultWebProxy=null;HttpWebRequesthttpWebRequest=(HttpWebRequest)WebRequest.Create(URL);httpWebRequest.Method=context.Request.HttpMethod;httpWe

c# 按值而不是键对 StringDictionary 进行排序

按值(而非键)顺序对StringDictionary进行排序(或迭代)的“最佳”方法是什么例如键-值1-X标签2-一个标签3-其他标签会给2-一个标签3-其他标签1-X标签编辑-我的意思是说“使用.NET2.0功能”。对不起,我不好... 最佳答案 使用LINQ:varitems=fromkind.Keysorderbyd[k]ascendingselectk;如果您受限于C#2.0功能,请使用:IDictionaryd=newDictionary();d["1"]="Xlabel";d["2"]="Alabel";d["3"]="

c# - 在此上下文中仅支持原始类型 ('such as Int32, String, and Guid' )

我收到以下错误:Unabletocreateaconstantvalueoftype'Phoenix.Intranet.Web.ClientSettings.ComponentRole'.Onlyprimitivetypes('suchasInt32,String,andGuid')aresupportedinthiscontext.我明白为什么会出现这个错误。我不明白的是为什么我的代码会产生错误。我的比较是针对原始类型的。所有的比较都是Guid到Guid。该错误明确指出Guids正常。错误发生在这一行(靠近底部):varvla=(fromcirinphoenixEntities.Co