複雑な構造を持つデータのシリアライズ
はじめに 循環参照があり、複数のクラスが含まれる複雑な構造のデータをシリアライズしたいと思いました。 しかし、調べてみても単純なクラスが1個だけあるサンプルが殆どでした。 唯一見つかった循環参照を扱ったサンプルも、シリアライズするクラスは一つです。 こちらはDataContractSerializerを使用しています。...
View Articlecscの作法 その67
概要 cscの作法、調べてみた。 mdbにsqlを発行してみた。 コンパイル手順 >csc sql0.cs /platform:x86 サンプルコード using System; using System.Data.OleDb; using System.Data; using System.IO; using System.Text; using...
View Articlecscの作法 その68
概要 cscの作法、調べてみた。 mdbにcsvを読み込んでみた。 コンパイル手順 >csc csv2mdb.cs /platform:x86 サンプルコード using System; using System.Data.OleDb; using System.Data; using System.IO; using System.Text; using...
View Articlecscの作法 その69
概要 cscの作法、調べてみた。 mdbにsql投げて合計求めてみた。 コンパイル手順 >csc sql1.cs /platform:x86 サンプルコード using System; using System.Data.OleDb; using System.Data; using System.IO; using System.Text; using...
View Articlecscの作法 その70
概要 cscの作法、調べてみた。 mdbにsql投げて合計求めて、円グラフにしてみた。 参考にしたページ 写真 コンパイル手順 >set PATH=C:\Windows\Microsoft.NET\Framework\v4.0.30319;%PATH% >csc pie0.cs /platform:x86...
View Article[C#] データアクセス層を作って拡張性の高い外部サービスとの連携機能を作る
はじめに 外部のサービスと連携した機能を作りたいとき、拡張性を高くするために行った設計をまとめます。 データアクセス層を作る 構成管理ツールと連携するための機能を題材に設計を行いましたので、それを例にして説明します。 構成管理ツールにはGitHub、GitLab、BitBucket、SVNのように様々ありますが、コミットやマージなど、どのサービスでも同じような操作があります。...
View Articlecscの作法 その71 積み上げ縦棒グラフ
概要 cscの作法、調べてみた。 積み上げ縦棒グラフやってみた。 写真 コンパイル手順 >set PATH=C:\Windows\Microsoft.NET\Framework\v4.0.30319;%PATH% >csc ch4.cs /r:System.Windows.Forms.DataVisualization.dll サンプルコード using System; using...
View Articlecscの作法 その72
概要 cscの作法、調べてみた。 threadやってみた。 参考にしたページ サンプルコード using System; using System.Threading; using System.Windows.Forms; using System.Drawing; namespace WindowsFormsApp4 { public partial class Form1 : Form {...
View Articlecscの作法 その73
概要 cscの作法、調べてみた。 BackgroundWorkerやってみた。 参考にしたページ コンパイル手順 >set PATH=C:\Windows\Microsoft.NET\Framework\v4.0.30319;%PATH% >csc bw.cs サンプルコード using System; using System.Threading; using...
View Articlecscの作法 その74
概要 cscの作法、調べてみた。 taskやってみた。 コンパイル手順 >set PATH=C:\Windows\Microsoft.NET\Framework\v4.0.30319;%PATH% >csc task.cs サンプルコード using System; using System.Threading; using System.Windows.Forms; using...
View Article【Unity】ベクトルを角度に変換する【Atan2関数】
やりたいこと Vector3で得られた座標を、特定の軸から見た二次元平面上の角度$\theta$として扱いたい。 (例) 以下のような$xz$座標において$x, z$の値から角度$\theta$を求めたい 結論 Mathf.Atan2(pos.z, pos.x) のように、Mathf.Tan2関数を使う。 準備 実際に挙動を見てみる。...
View ArticleMIMEタイプをハードコーディング以外で指定したい
経緯 WebAPIなどで使用するMIMEタイプ。 普段C#ではハードコーディングをしているけど、定数だし何かで定義されているのでは?と思って調べたので記録用に。 C#: System.Net.Mime 使いそうなのは以下の表に 呼び出し方 MIMEタイプ MediaTypeNames.Application.Json application/json...
View Article【Zoom Meeting SDK】Windows SDKのC# Wrapperに新しいインタフェースを追加する。
はじめに Zoom Meeting SDKのWindows SDKはC++で提供されているのですが、合わせてC#へのWrapperも提供されています。 しかしながら、このWrapperプロジェクトはC++のインタフェースを完全に含んでいるわけではないとの事です。 Wrapperに含まれていないインタフェースについては、自力で追加する必要があります。...
View Articlecscの作法 その75
概要 cscの作法、調べてみた。 tcpサーバやってみた。 参考にしたページ コンパイル手順 >set PATH=C:\Windows\Microsoft.NET\Framework\v4.0.30319;%PATH% >csc svr.cs サンプルコード using System; using System.Windows.Forms; using System.Drawing;...
View Articlecscの作法 その76
概要 cscの作法、調べてみた。 WebBrowserでhtml5test.comのスコア確認やってみた。 写真 サンプルコード using System; using System.Windows.Forms; using System.Drawing; class form1: Form { WebBrowser wb0; form1() { Text = "WebBrowser";...
View ArticleAnnotations Frameworkを使って、C#でのAWS Lmbda 関数実装をもっと楽にしよう
はじめに Visual Studio で AWS Lambda の新しいプロジェクトを作成しようとしたら、Annotations Framework という見慣れないプロジェクトがありました。今回はこの子がどういったものであるかを確認していきます。 Lambda Annotations とは? AWS Labmda Dotnet の Lambda Annotations に関する README...
View ArticleSystem.Text.JsonでJSONをキャメルケースでシリアライズする
はじめに 昔、Newtonsoft.Jsonがあった(いまもある)。 Newtonsoft.Jsonは、変換が柔軟な反面、パフォーマンス等が犠牲になっている。 しかし、常に柔軟さが必要なわけではない。 変換が厳密でいい場合に、Newtonsoft.Jsonの機能は過剰であるから、よりパフォーマンスに優れたライブラリSystem.Text.Jsonが作られた。 柔軟とはどういうことか?...
View ArticleC#VB.NETを使用してPDFをSVGファイル形式に変換する方法
SVGファイル形式の紹介とその利点 SVGは、現在最も人気のある画像ファイル形式の一つとも言えます。その完全な英語名は、ScalableVector Graphicsであり、縮小また拡大することができるベクター画像のことを指しています。これは、WorldWide Web Consortium(W3C)アライアンスによって開発されたXML(ExtensibleMarkup...
View Articlecscの作法 その77
概要 cscの作法、調べてみた。 メモ帳、起動してみた。 サンプルコード using System; using System.Diagnostics; namespace ProcessStartSample { class Program { static void Main(string[] args) { ProcessStartInfo app = new...
View Article