Questions tagged «c#»

C#(发音为“ See Sharp”)是由Microsoft开发的一种高级,静态类型的多范例编程语言。C#代码通常针对Microsoft的.NET系列工具和运行时,其中包括.NET Framework,.NET Core和Xamarin。使用此标记可解决有关用C#或C#正式规范编写的代码的问题。


27
无法使用Json序列化Web API中的响应
我正在使用ASP.NET MVC 5 Web Api。我想咨询所有用户。 我写了api/users,我收到了: “'ObjectContent`1'类型未能序列化内容类型'application / json; charset = utf-8'的响应主体” 在WebApiConfig中,我已经添加了以下几行: HttpConfiguration config = new HttpConfiguration(); config.Formatters.XmlFormatter.SupportedMediaTypes.Remove(appXmlType); config.Formatters.JsonFormatter.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore; 但这仍然行不通。 我的返回数据函数是这样的: public IEnumerable<User> GetAll() { using (Database db = new Database()) { return db.Users.ToList(); } }

9
有什么理由在C#中编写“ private”关键字?
据我所知,private是默认无处不在C#中(也就是说,如果我不写public,protected,internal等这将是private默认情况下)。(如果我错了,请纠正我。) 那么,写该关键字的原因是什么,或者为什么它甚至对于成员来说仍然存在? 例如,当事件处理程序自动生成时,它看起来像这样: private void RatTrap_MouseEnter(object sender, CheeseEventArgs e) { } 但是,如果隐含和默认了,为什么还要写私有呢?只是这样,新手开发人员(谁不知道这是C#默认值)便知道它是私有的?还是编译器有区别? 此外,是否存在写“私有”(单独)会改变成员可访问性的情况?

8
实现线程安全字典的最佳方法是什么?
通过从IDictionary派生并定义私有SyncRoot对象,我能够在C#中实现线程安全的Dictionary: public class SafeDictionary<TKey, TValue>: IDictionary<TKey, TValue> { private readonly object syncRoot = new object(); private Dictionary<TKey, TValue> d = new Dictionary<TKey, TValue>(); public object SyncRoot { get { return syncRoot; } } public void Add(TKey key, TValue value) { lock (syncRoot) { d.Add(key, value); } } // more IDictionary …

4
在ConcurrentDictionary AddOrUpdate中为更新部分添加什么
我正在尝试使用Dictionary重新编写一些代码以使用ConcurrentDictionary。我已经查看了一些示例,但是在实现AddOrUpdate函数时仍然遇到困难。这是原始代码: dynamic a = HttpContext; Dictionary<int, string> userDic = this.HttpContext.Application["UserSessionList"] as Dictionary<int, String>; if (userDic != null) { if (useDic.ContainsKey(authUser.UserId)) { userDic.Remove(authUser.UserId); } } else { userDic = new Dictionary<int,string>(); } userDic.Add(authUser.UserId, a.Session.SessionID.ToString()); this.HttpContext.Application["UserDic"] = userDic; 我不知道要为更新部分添加什么: userDic.AddOrUpdate(authUser.UserId, a.Session.SessionID.ToString(), /*** what to add here? ***/); 任何指针将不胜感激。

9
为RichTextBox字符串的不同部分上色
我正在尝试为要附加到RichTextBox的字符串部分上色。我有一个由不同的字符串构建的字符串。 string temp = "[" + DateTime.Now.ToShortTimeString() + "] " + userid + " " + message + Environment.NewLine; 这是消息一旦构造后的样子。 [9:23 pm]用户:我的留言在这里。 我希望方括号[9:23]中的所有内容(包括括号在内)都是一种颜色,“用户”是另一种颜色,消息是另一种颜色。然后,我想将字符串附加到我的RichTextBox中。 我该怎么做?

4
如何从活动目录中获取用户列表?
如何从活动目录中获取用户列表?有没有办法提取用户名,名字,姓氏?我看到了一个类似的帖子,其中使用了它: PrincipalContext ctx = new PrincipalContext(ContextType.Domain, "YOURDOMAIN"); 我从来没有对活动目录做过任何事情,所以我完全迷路了。任何帮助将不胜感激!

4
如何通过JObject枚举?
我试图确定如何访问JObject中的数据,但我终生无法确定如何使用它。 JObject Object = (JObject)Response.Data["my_key"]; 我可以将其打印到执行Console.WriteLine(Object)的控制台中,然后看到数据,它看起来像: { "my_data" : "more of my string data" ... } 但是我不知道如何迭代/枚举它,任何人都有想法吗?我现在很茫然。
109 c#  json  json.net 

8
元组(或数组)作为C#中的字典键
我正在尝试在C#中创建一个字典查找表。我需要将三元组的值解析为一个字符串。我尝试使用数组作为键,但是那没有用,而且我不知道该怎么办。在这一点上,我正在考虑制作“字典词典”,尽管我将使用javascript做到这一点,但看起来可能不太漂亮。


9
在ASP.NET MVC中对控制器进行简单的Ajax调用
我正在尝试开始使用ASP.NET MVC Ajax调用。 控制器: public class AjaxTestController : Controller { // // GET: /AjaxTest/ public ActionResult Index() { return View(); } public ActionResult FirstAjax() { return Json("chamara", JsonRequestBehavior.AllowGet); } } 视图: <head runat="server"> <title>FirstAjax</title> <script src="http://code.jquery.com/jquery-1.9.1.js"></script> <script src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script> <script type="text/javascript"> $(document).ready(function () { var serviceURL = '/AjaxTest/FirstAjax'; $.ajax({ type: "POST", …

9
如何从ConcurrentBag <>中删除单个特定对象?
随着新ConcurrentBag&lt;T&gt;的.NET 4,你怎么从它,只有当删除一些具体目标TryTake()和TryPeek()可用? 我想用的TryTake(),然后只是增加了生成的对象回列表,如果我不想要删除它,但我觉得我可能会失去了一些东西。这是正确的方法吗?
109 c#  c#-4.0 

3
如何在不违反继承安全规则的情况下在.NET 4+中实现ISerializable?
背景:Noda Time包含许多可序列化的结构。尽管我不喜欢二进制序列化,但在1.x时间线中,我们收到了许多支持它的请求。我们通过实现ISerializable接口来支持它。 我们已经收到了有关.NET Fiddle中Noda Time 2.x 的最新问题报告。使用Noda Time 1.x的相同代码可以正常工作。抛出的异常是这样的: 重写成员时违反了继承安全性规则:“ NodaTime.Duration.System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)”。覆盖方法的安全可访问性必须与被覆盖方法的安全可访问性相匹配。 我将其范围缩小到目标框架:1.x面向.NET 3.5(客户端配置文件);2.x面向.NET 4.5。它们在支持PCL与.NET Core以及项目文件结构方面有很大的不同,但这似乎无关紧要。 我已经设法在一个本地项目中重现了它,但是还没有找到解决方案。 在VS2017中重现的步骤: 创建一个新的解决方案 创建一个针对.NET 4.5.1的新的经典Windows控制台应用程序。我称它为“ CodeRunner”。 在项目属性中,转到“签名”,然后使用新密钥对部件进行签名。取消选中密码要求,然后使用任何密钥文件名。 粘贴以下代码进行替换Program.cs。这是此Microsoft示例中的代码的简化版本。我将所有路径保持不变,因此,如果您想返回完整的代码,则无需更改其他任何内容。 码: using System; using System.Security; using System.Security.Permissions; class Sandboxer : MarshalByRefObject { static void Main() { var adSetup = new AppDomainSetup(); adSetup.ApplicationBase = System.IO.Path.GetFullPath(@"..\..\..\UntrustedCode\bin\Debug"); var permSet = …

9
C#:getter / setter
我在某处看到以下内容,并且想知道它的含义。我知道它们是getter和setter,但想知道为什么字符串Type是这样定义的。谢谢你帮我 public string Type { get; set; }
109 c#  getter-setter 

11
无法将类型为“ System.DBNull”的对象转换为类型为“ System.String”的对象
我的应用程式中出现上述错误。这是原始代码 public string GetCustomerNumber(Guid id) { string accountNumber = (string)DBSqlHelperFactory.ExecuteScalar(connectionStringSplendidmyApp, CommandType.StoredProcedure, "GetCustomerNumber", new SqlParameter("@id", id)); return accountNumber.ToString(); } 我换成 public string GetCustomerNumber(Guid id) { object accountNumber = (object)DBSqlHelperFactory.ExecuteScalar(connectionStringSplendidCRM, CommandType.StoredProcedure, "spx_GetCustomerNumber", new SqlParameter("@id", id)); if (accountNumber is System.DBNull) { return string.Empty; } else { return accountNumber.ToString(); } } 有没有更好的办法解决这个问题?
109 c#  asp.net  database  null 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.