19/12/22 04:41:32 GX5OjjKF0.net
まじで言ってる?
例えば、カメラで撮影したローカルにあるJPEG画像を投稿サイトにアップロードする機能つくるとき、EXIFを消してアップロードしたいありがちな機能。
MemoryStreamを渡せれば、元のファイル変更せずにメモリ上で修正してアップロードして破棄できる。
同じことをやるにはFileStreamだと一々コピーしないといけない。
151:デフォルトの名無しさん
19/12/22 05:57:32.35 R0LOzgYE0.net
タグ部分と同じ構造体作って該当部分のバイト配列を構造体に変換すりゃ済むんじゃないの
152:デフォルトの名無しさん
19/12/22 08:25:01.65 /NGpR+eY0.net
TaglibSharpの.net Standard版をUWPから使っているが
TagLib.File.IFileAbstractionってのを使ってストリームを操作している
自分でこのインターフェースを実装すれば割と簡単に行けると思うよ
実装してクラスをTagLib.File.Createに渡せば問題ない
153:デフォルトの名無しさん
19/12/22 12:48:45.77 d/zyo53Ma.net
>>150
それ、別にFileStreamを受け取ってStreamを吐く仕様で何も困らないのでは?
154:デフォルトの名無しさん
19/12/22 13:18:15.55 7hF/cDg80.net
>>147>>152
ありがとうございます。
IFileAbstractionを実装したクラスでCreateしていましたが、CloseStreamで内部のMemoryStreamをDisposeしてしまっていたため、挙動がおかしくなっていただけでした
TagLib.File.Save()を行うことで初めて内部のstreamにTag情報が書き込まれ、同時にCloseStreamも呼ばれるためそこでは内部のstreamを閉じずに自前の後処理を行ってから閉じることで希望の動作になりました
155:デフォルトの名無しさん
19/12/22 16:13:05.02 thbQEK090.net
ヽ(・ω・)/ズコー
まあ、バグ調べてて「俺ってバカ?」って思うことはよくあることだ
バグ作り込む気は全く無いのに、毎度あるのは何でか不思議でならない
(まあ最近は熟知してない言語で作ることが増えてきたのもあるが、COBOLごときでも一緒だったな…)
156:デフォルトの名無しさん
19/12/22 22:16:50.41 TCqgMSVE0.net
ライブラリを作ろうかと思うのですが
あるクラスをライブラリ内ではインスタンス化できるようにしたいけど
ライブラリを使う人はインスタンス化できないようにする
というようなことは可能ですか?
参考になるサイトなどありますか?
クラスのプロパティは基本的にすべて読み出しだけ可能にする予定です。
157:デフォルトの名無しさん
19/12/22 22:22:55.94 CUDsNTIh0.net
コンストラクタをinternalにする
158:デフォルトの名無しさん
19/12/22 22:28:00.73 t9cAONDx0.net
>>153
じゃあさあ。ネットワークから受け取った画像をファイルに保存せずに、そのまんまEXIF修正して別のサーバーに送り返す場合、どうするの?
と、使う方次第で色んな用件があるわけ。
実装コスト増えるならまだしも、今回のケースでは読み書きできてシークできるStreamであれば良さそうなのに、それをFileStreamに限定するの意味がわからない。
159:デフォルトの名無しさん
19/12/22 22:37:29.12 b8EKEEl60.net
この動画の人がVisual StudioでやっているAuthenticatonをオンにする設定は、dotnetコマンドではどうやるのですか?
URLリンク(youtu.be)
160:158
19/12/22 22:45:45.81 b8EKEEl60.net
すまん
自己解決しました
URLリンク(docs.microsoft.com)
161:デフォルトの名無しさん (ワッチョイ 7f0d-9COd)
19/12/23 02:14:36 CbUt8X2i0.net
c#からpythonのmatplotlibを呼んでみたらグラフ描画に10秒くらいかかった・・・
めんどくさい数値演算とかをPythonライブラリに丸投げしたかったけど厳しい
グラフ描画はwinformでやるにしても描画するための連続データを戻り値として受け渡しするのなぁ
162:デフォルトの名無しさん
19/12/23 06:05:21.41 n/5EZXjd0.net
>>161
chartじゃだめか?
163:デフォルトの名無しさん
19/12/23 06:33:23.54 TTdlQikFd.net
>>157
ありがとうございます。
難しく考えすぎてました。
164:デフォルトの名無しさん
19/12/23 08:20:32.39 AV2OtNnH0.net
>>161
その程度の何が障害なの?
ナメてるのか?
165:デフォルトの名無しさん
19/12/23 09:06:54.33 5ISBodU5M.net
>>164
食ってかかるなよ
>>161
ふーん。日記ならママにでも聞かせとけよ
166:デフォルトの名無しさん
19/12/23 14:12:00.92 CVji7Zdt0.net
自分で使う用のWinデスクトップアプリケーションを作ってみたいのですが
VScodeにC#の拡張をインストールしたところ、".net Coreが無い"というメッセージが出ました
.net frameworkを後から入れるつもりだったのですが
現在はframeworkではなくCoreを使用するのでしょうか?
軽くしらべたところ、Coreはサーバサイ用、frameworkはデスクトプ用っぽいんですが
Coreでデスクトップアプリを作成するチュートリアルもあるようでした
167:デフォルトの名無しさん
19/12/23 14:29:00.57 FZMFlrDL0.net
coreはサーバー用ではないよ
今ならデスクトップアプリでもcoreで作るけど別にframework使えないってわけでもない
古い環境への配慮とか考えなくていいならcoreでいいんじゃない?
168:デフォルトの名無しさん
19/12/23 15:12:57.52 Gp3oh3j2M.net
そして System.Drawing の移植性の無さで
泣ける。
169:デフォルトの名無しさん
19/12/23 15:38:13.00 Wyd1VJ4y0.net
WebBrowserでカスタムHeaderの送信とResponse Headerの取得ができません
.net core 3.1を使っています。バグでしょうか?
170:デフォルトの名無しさん
19/12/23 15:46:22.84 CVji7Zdt0.net
>>167
ありがとうございます
Core入れてきます
171:デフォルトの名無しさん
19/12/23 17:45:51.26 eQmrU5ERd.net
>>170
そのレベルだと、VSCodeでxaml手書きはキツいんじゃない?素直にVisual Studio使いな
172:デフォルトの名無しさん
19/12/23 18:05:28.45 oBvZW+b7M.net
今ならBlazorが簡単で良いよ
一般常識レベルのHtmlがわかってれば後は直感で作れる
173:デフォルトの名無しさん
19/12/23 18:16:31.10 +KUE/8IiM.net
C#使いたがる人ってWebに苦手意識がある人が多い印象だなあ
最初からrazor使えるような奴はそもそもC#(というかWindows開発)を選ばないと思うよ
174:デフォルトの名無しさん
19/12/23 18:22:36.62 P6gAM1Rw0.net
嫌ぁCAD+画像処理屋なので、webじゃ
やっとれんだけですよ。
SPIDERがwebに乗って実用化されたら
考える。
175:デフォルトの名無しさん
19/12/23 18:28:43.48 +KUE/8IiM.net
ほらね
176:デフォルトの名無しさん
19/12/23 18:44:33.92 kZpvALBe0.net
>>173
お前はC#スレに来て何がしたいんだ?
177:デフォルトの名無しさん
19/12/23 19:08:35.91 kDR2U+EyM.net
なにがほらねなんだろ
178:デフォルトの名無しさん
19/12/23 19:10:12.11 P6gAM1Rw0.net
法螺ね
179:デフォルトの名無しさん
19/12/24 11:17:43.39 pJ4JfZbNd.net
prism の質問もここでいいですか?
180:デフォルトの名無しさん
19/12/24 11:23:10.23 rY4O3lLw0.net
許すん
181:デフォルトの名無しさん
19/12/24 11:27:15.31 4hGbK3LLM.net
今のprismはMSとは無関係な単なる野良ライブラリの一つだからダメ
182:デフォルトの名無しさん
19/12/24 12:29:36.63 2vtH2tiGd.net
>>179
C#で使うならOK
183:デフォルトの名無しさん
19/12/24 12:45:35.02 +zwswjcb0.net
skiasharp Microsoftの純正ライブラリー
扱いなのに(nugetでは)
情報が少なくて笑える
人脈が無いとこういう扱いなのかw
184:ャfフォルトの名末ウしさん
19/12/24 13:55:17.48 rY4O3lLw0.net
流れ読まずに。
private int hoge(){
using(/* なんか入る */){
/* ひたすら処理 */
return nanka;
}
}
こういうreturnの書き方は一般的なのでしょうか?
usingの中カッコの外にreturn文がないと値の返し損ねがないか心配なのですが
VisualStudioの警告は出ないしアリなのかナシなのか諸兄のご意見をいただきたく。
185:デフォルトの名無しさん
19/12/24 14:15:20.75 4hGbK3LLM.net
>>184
普通にアリ
メソッドから戻る直前にDisposeが実行される
なお、C#8以降では以下のように書けるため、従来のusingブロックはほとんどの場合必要なくなった
using var x = new Hoge("Arial", 10.0f);
x.Foo();
// メソッドを抜けるときに自動的に x.Dispose が呼ばれる
186:デフォルトの名無しさん
19/12/24 14:42:06.62 JGZzQNV20.net
>>184
returnが無いパスがあったら警告出るよ
警告が出ないということは必ずreturnが呼ばれている
187:デフォルトの名無しさん
19/12/24 16:17:46.84 pJ4JfZbNd.net
>>182,180
ありがとう。DIコンテナにUnityを使ってて、App.xaml の RegisterTypes で RegisterSingleton で登録する共用クラスがあるんだけど、このコンストラクタに引数を渡したいです
UnityContainerの中で生成するタイミングがわからなくて渡し方がわかりません
188:デフォルトの名無しさん
19/12/24 16:20:01.66 pJ4JfZbNd.net
あ、引数はユーザーコンフィグから取得したいです
189:デフォルトの名無しさん
19/12/24 17:24:40.68 rY4O3lLw0.net
>>185,186
ありがとうございますm(_ _)m
usingの中カッコの中で変数宣言してそれを返せて終われたらいいなと思ってたのでこの書き方でやってみます
190:デフォルトの名無しさん
19/12/24 19:00:31.16 yk68HN8sM.net
>>188
コンフィグクラスかコンフィグ読み込みクラスを注入すればいいよ
191:デフォルトの名無しさん
19/12/24 19:05:38.59 0ojb25IiM.net
>>185
まじ?C#は洗練されてるね
192:デフォルトの名無しさん
19/12/25 00:57:35.17 BOYk9T8B0.net
>>190
ああそりゃそうか。DIコンテナがあるんだからインジェクションすればいいだけなんだねありがとう
193:デフォルトの名無しさん
19/12/25 21:07:41.04 nysCvhr10.net
.netライブラリでかすぎじゃね?
194:デフォルトの名無しさん (ワッチョイ f12d-vQnI)
19/12/26 03:51:48 bzjIw0U90.net
作ったプログラムをUbuntuのバックグラウンドで動かし続けたいんだけどさあ
nohup dotnet run &
だと、動かないのかすぐ終わっちゃうのかわかんないけどダメだったぜ
どうすればよかんべえな?
195:デフォルトの名無しさん
19/12/26 09:37:04.58 qmNoWNu8F.net
>>193
既にライブラリじゃないですね
196:デフォルトの名無しさん
19/12/26 10:09:04.01 Wx+k6OqqM.net
>>194
Docker使うのが簡単だしスキル的にも得るものが大きい
197:デフォルトの名無しさん
19/12/26 22:14:19.89 z0a0esehd.net
>185
1000行近い関数が沢山あるクソコードだと以前の方が便利だな(涙目)
198:デフォルトの名無しさん
19/12/26 22:19:53.43 YRIJALUmM.net
メソッド内にラノベでも書いてんのか?
199:デフォルトの名無しさん
19/12/27 23:38:38.82 rZaePzzs0.net
頻出パターンだと思うんだけど、
ツリービューとかデータグリッドを選択したら詳細を表示する画面で、詳細部分のリジョンにナビゲーションで登録する時って、
詳細のビューのコードビハインドに書くしかないのかね。
サンプルがそうなってるけど、コードビハインドに書くのに抵抗がある
200:デフォルトの名無しさん
19/12/28 00:09:08.65 L8M+Vbvra.net
React等の仮想DOMを使ったモダンなMVVM系Webフレームワークでは、コンポーネントとしてVMを階層化する。
この場合、親VMが子VMとしてツリービューVMと詳細VMを持つ形になるだろう。
そして、ツリービューの選択項目が変更されたらツリービューVMがそれを受けて親VMに通知し、親VMが詳細VMの表示対象データのプロパティを更新する。
WPFの原始的なMVVMではそのへんはあまり洗練されていないし、そもそもWPF自体誰も使ってないから特にベストプラクティスのようなものも無い。
WebのMVVMを真似するのもコードビハインドを書くのも君の自由だ。
201:デフォルトの名無しさん
19/12/28 02:11:10.25 n5/LKlnD0.net
「リジョンのナビゲーションで登録」
意味不明
202:デフォルトの名無しさん (ワッチョイ 3538-n2a0)
19/12/28 04:17:29 j+kocMTA0.net
「詳細部分のregion(領域)」までは何とか…
203:デフォルトの名無しさん
19/12/28 11:25:47.63 aAyiCa3V0.net
>>201
ごめんなさい。モジュールでレジスタービューウィズリジョンじゃなくて、レジスターフォーナビゲーションを使って登録するとこのことです
公式サンプルのベーシックリジョンナビゲーションの書き方をみての質問です
204:デフォルトの名無しさん
19/12/28 11:47:20.50 j+kocMTA0.net
クソワロタ
205:デフォルトの名無しさん
19/12/28 11:53:28.80 mKsVnGCZ0.net
そうか、よくわからないけど解決したなら良かった