タグ付けされた質問 「c#」

C#(「seesharp」と発音)は、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デフォルトでどこでも C#では(私は書いていない場合つまりpublic、protected、internal、など、それはなりますprivateデフォルトでは)。(間違いがあったら訂正してください。) それで、そのキーワードを書く理由は何ですか、またはなぜそれがメンバーのために存在するのですか? たとえば、イベントハンドラーが自動生成されると、次のようになります。 private void RatTrap_MouseEnter(object sender, CheeseEventArgs e) { } しかし、それが暗黙的でデフォルトであるのに、なぜそれはプライベートでさえ書くのですか?初心者の開発者(C#のデフォルトであることを知らない人)がプライベートであることを知っているだけですか?それともコンパイラに違いはありますか? また、「プライベート」(単独)でメンバーのアクセシビリティが変わるケースはありますか?

8
スレッドセーフな辞書を実装する最良の方法は何ですか?
IDictionaryから派生させ、プライベートSyncRootオブジェクトを定義することで、C#でスレッドセーフなディクショナリを実装できました。 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の更新部分に追加するもの
辞書を使用してコードを書き直して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; これは、メッセージが作成されるとメッセージがどのようになるかを示しています。 [21:23 pm]ユーザー:ここに私のメッセージ。 角かっこ[9:23]内のすべてのものが1つの色になり、「ユーザー」が別の色になり、メッセージが別の色になります。次に、RichTextBoxに文字列を追加します。 どうすればこれを達成できますか?

4
Active Directoryからユーザーのリストを取得するにはどうすればよいですか?
Active Directoryからユーザーのリストを取得するにはどうすればよいですか?ユーザー名、名、姓を取得する方法はありますか?これが使用された同様の投稿を見ました: PrincipalContext ctx = new PrincipalContext(ContextType.Domain, "YOURDOMAIN"); 私はActive Directoryで何もしたことがないので、完全に迷っています。どんな助けでも大歓迎です!

8
C#の辞書キーとしてのタプル(または配列)
C#で辞書ルックアップテーブルを作成しようとしています。3タプルの値を1つの文字列に解決する必要があります。配列をキーとして使用しようとしましたが、うまくいきませんでした。他に何をすべきかわかりません。この時点で私はディクショナリのディクショナリのディクショナリを作成することを検討していますが、JavaScriptでそれを行う方法ですが、それはおそらく非常にきれいではありません。


11
ファイルパスが長すぎるという例外を解決する最良の方法
SPサイトのすべてのドキュメントライブラリをダウンロードするアプリを作成しましたが、ある時点でこのエラーが表示されました(Googleを見てみたが何も見つからなかった。この問題を解決するためのトリックを知っている人がいたら、それ以外の場合は返信してください。それを見て) System.IO.PathTooLongException:指定されたパス、ファイル名、またはその両方が長すぎます。完全修飾ファイル名は260文字未満である必要があり、ディレクトリ名は248文字未満である必要があります。System.IO.Path.NormalizePathFast(String path、Boolean fullCheck)at System.IO.Path.GetFullPathInternal(String path)at System.IO.FileStream.Init(String path、FileMode mode、FileAccess access、Int32 rights、Boolean useRights 、FileShare共有、Int32 bufferSize、FileOptionsオプション、SECURITY_ATTRIBUTES secAttrs、String msgPath、Boolean bFromProxy)at System.IO.FileStream..ctor(String path、FileMode mode、FileAccess access、FileShare share、Int32 bufferSize、FileOptions options)at System。 IO.File.Create(String path) 文字列の制限に達した場合、コードを以下に示します。 #region Downloading Schemes private void btnDownload_Click(object sender, EventArgs e) { TreeNode currentNode = tvWebs.SelectedNode; SPObjectData objectData = (SPObjectData)currentNode.Tag; try { CreateLoggingFile(); using …
109 c#  .net  string  file  sharepoint 

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インターフェースを実装することでサポートします。 Noda Time 2.x が.NET Fiddle内で失敗するという最近の問題レポートを受け取りました。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 = new …

9
c#:ゲッター/セッター
私はどこかで次のようなものを見て、それが何を意味するのかと思っていました。私はそれらがゲッターとセッターであることを知っていますが、文字列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 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.