ふらっと C#,C♯,C#(初心者用) Part140

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 9e9f-LwdJ)
垢版 |
2018/10/04(木) 18:56:38.41ID:JnxMNCXd0
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください

>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。

■関連スレ
C#, C♯, C#相談室 Part93
https://mevius.5ch.net/test/read.cgi/tech/1492818720/
■前スレ
ふらっと C#,C♯,C#(初心者用) Part139
https://mevius.5ch.net/test/read.cgi/tech/1533466544/
■コードを貼る場合は↓を使いましょう。
http://ideone.com/
https://dotnetfiddle.net/

■情報源
https://msdn.microsoft.com/ja-jp/library/gg145045.aspx
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/index
https://msdn.microsoft.com/en-us/library/gg145045.aspx
http://referencesource.microsoft.com/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
2018/12/01(土) 19:36:32.06ID:IDJAnGVn0
>>736
http://www.atmarkit.co.jp/fdotnet/extremecs/extremecs_06/extremecs_06_04.html
740デフォルトの名無しさん (ワッチョイ 0eeb-hzet)
垢版 |
2018/12/01(土) 21:00:00.35ID:4Hpcan/K0
ありがとう!なんで10になるのかはわかったよ
ただ次になぜ10が10個並んじゃわないのかが全然わかんなくなってきたぜ・・・・
2018/12/01(土) 21:02:51.31ID:IDJAnGVn0
>>740
forループの実行中にTaskが開始されてるからでしょ
742デフォルトの名無しさん (ワッチョイ 0eeb-hzet)
垢版 |
2018/12/01(土) 22:13:11.50ID:4Hpcan/K0
>>741
forループ中にTaskが開始されるとなぜ1つになっちゃうのか全然わからなんだ・・・・
2018/12/01(土) 22:53:47.54ID:THW+jwSM0
メインスレッドが即座に終了して出力なしの方がザラだと思うが
明示的に待たないとTaskの完了など知った事ではないよ

というか徒に増やした所でメモリ帯域とかで躓くのがオチ
Taskは非同期だし、並列実行が望みならGPGPUなりを…
2018/12/01(土) 22:57:20.39ID:q6i9ekrsM
たかが10要素だし、配列に入れてるんだからWhenAllとかで待てるだろ
直行する問題を分離できないおバカさんかな
2018/12/01(土) 23:13:24.31ID:BBiFvNwv0
>>727-730
ありがとうございました。いい方法あったんですね
そろい踏みで
var task = new Task[10];
for (int i = 0; i < 10; i++)
{ int j = i; task[i] = Task.Run(() => Console.WriteLine("a={0}", j)); }

var tasks = Enumerable.Range(0, 10).Select(i => Task.Run(() => {Console.WriteLine("b={0}",i);})).ToArray();

var task2 = new Task[10];
for (int i = 0; i < 10; i++)
{ task2[i] = Task.Run(() => Console.WriteLine("c={0}", i)); }

foreach (var i in Enumerable.Range(0, 10)) { Console.WriteLine("d={0}", i); }

Console.ReadKey();

で何回か試してみると、foreachだけは必ずタスクの起動順が順番通りで揃うんですね
ちょっとこれを使ってみます
2018/12/01(土) 23:22:08.99ID:R6GB4fM+0
>>745
foreachのはTask作ってない。他に合わせるなら
foreach (var i in Enumerable.Range(0, 10)) { Task.Run( () => {Console.WriteLine("d={0}", i); } }
でないとおかしい。
2018/12/01(土) 23:22:16.02ID:THW+jwSM0
foreachだけはTaskどころか普通の同期処理だが…?
2018/12/01(土) 23:23:22.50ID:q6i9ekrsM
>>745
いやそれforeachはTaskによる実行になってないぞ
foreach使うならループの中は>>728のおバカさん版と同じにしないといけない(ただし>>728とは違って意図通りに動作する)
2018/12/01(土) 23:28:44.22ID:UFOjA6r40
意味わからんな
2018/12/01(土) 23:57:08.18ID:cajtydEwd
>>749
この馬鹿ちんが
2018/12/01(土) 23:59:39.62ID:BBiFvNwv0
>>746-749
ああ、ほんとだ>>745で書いたの間違ってら。。。
何やってんだ俺。。。

var task3 = new Task[10];
foreach (var i in Enumerable.Range(0, 10))
{
task3[i] = Task.Run(() => Console.WriteLine("d={0}", i));
}

これであってんのかな
2018/12/02(日) 00:15:47.90ID:y4RDtfAe0
そんな簡単なコード間違えるような記述方式なのに頭おかしい
2018/12/02(日) 00:27:50.88ID:heWd1TkG0
>>752
日本語おかしい
2018/12/02(日) 01:08:52.07ID:y4RDtfAe0
こんな簡単なコードでバグってるのかよ
やっぱりラムダはクソだな
2018/12/02(日) 09:05:24.28ID:VRa40hbi0
ラムダ式って
void method()
{
int x = 1;
int y = 10;
Action a = () => {Console.WriteLine( x + y); };
a.Invoke();
x += 100;
a.Invoke();
}
こうやってメソッド内に導入した瞬間にこのメソッドが
class クラス名が非表示のクラス
{
int x;
int y;
void a()
{
Console.WriteLine(this.x + this.y);
}
public void method()
{
this.x = 1;
this.y = 10;
a();
this.x+=100;
a();
}
}
みたいに勝手にクラス化されて変数が内部でフィールド扱いになるって理解でいい?
2018/12/02(日) 12:15:35.79ID:uCltPpgZa
>>755
そういう理解だと、例えば>>736のコードみたいな挙動は説明しづらいんじゃない?
機能的に等価なコードに置き換えるんじゃなくて、ありのままを理解した方が簡単だと思うよ。
2018/12/02(日) 12:25:04.16ID:heWd1TkG0
生成されたアセンブリをILSpyで逆アセンブルすると参考になるよ
2018/12/02(日) 12:25:51.63ID:wepbCU4lM
こんな雑魚コードでそこまでしないと挙動のわからない欠陥品
2018/12/02(日) 14:08:20.38ID:9iE6z7au0
雑魚はこんなこともりかいできないのか
生活が大変そうですね…
ああでも雑魚は特養で生活してるから大丈夫だね
よかった
760デフォルトの名無しさん (ワッチョイ 4b9f-GnKV)
垢版 |
2018/12/02(日) 15:05:44.53ID:1mt10vUo0
質問です
staticなclassに機密情報を保持してプロジェクト内のすべてのコードから参照して利用できるようにしたいです
その場合、改竄を防ぐために決められた場所(コード)からしかsetできないようにしたいですがどうすればいいでしょうか?
また他プロセスからのメモリ改竄はどのように対策をすればいいでしょうか?
2018/12/02(日) 15:25:34.83ID:8Z0+kDxur
>>760
c#アプリに機密情報なんか書き込むな
762デフォルトの名無しさん (ワッチョイ 4b9f-GnKV)
垢版 |
2018/12/02(日) 15:26:44.53ID:1mt10vUo0
>>761
書き込みじゃありません保持です
具体的には受け取った値をメモリ上に置いてそれを各所で参照します
2018/12/02(日) 15:45:30.50ID:XLvYoqNs0
>>760
他プロセスからの保護は、System.Security.Cryptographyの
ProtectedMemory.Protect()でMemoryProtectionScope.SameProcessを指定するとかかな
764デフォルトの名無しさん (ワッチョイ 4b9f-GnKV)
垢版 |
2018/12/02(日) 15:49:14.43ID:1mt10vUo0
>>763
情報ありがとうございます
さっそく調べてみます
2018/12/02(日) 15:55:25.15ID:XLvYoqNs0
特定の呼び出し元からのみ設定に関しては、StackTraceで呼び出し元を確認かな。
Caller Infoだと微妙か。
2018/12/02(日) 15:55:38.27ID:yai2DppL0
メモリを直接書き換えてくるような攻撃だとアクセス修飾子なんて一切関係なく書き換えられるし、そもそもその後のif文自体を書き換えたりとかしてくるから一定レベル以上の攻撃は防げない
とりあえずxor暗号程度で保持しとくとかは?
get => 機密情報 ^ 0x01234567;
set => 機密情報 = value ^ 0x01234567;
2018/12/02(日) 15:57:52.77ID:uCltPpgZa
>>760
前者はセッターをinternalにするのが一番素直で分かりやすいと思う
768デフォルトの名無しさん (ワッチョイ 4b9f-GnKV)
垢版 |
2018/12/02(日) 16:00:32.72ID:1mt10vUo0
>>765
>>766
>>767
ありがとうございます
参考にさせていただきます
2018/12/02(日) 16:23:19.21ID:3wF0RuQO0
>>767
アクセス修飾子での制限はリフレクションで簡単に突破される
2018/12/02(日) 17:32:37.60ID:uCltPpgZa
>>769
当たり前やん。

悪意と不注意は区別する必要がある。

前者に対する防衛法を語る能力を俺は持ってないので
後者について言ったまで
2018/12/02(日) 17:55:56.69ID:8Z0+kDxur
そもそもお漏らししてもいい案件だけやる
2018/12/02(日) 18:07:52.27ID:3wF0RuQO0
>>770
>>760が訊いてるのは悪意対策だろ…
2018/12/02(日) 19:18:46.11ID:wUrRop5j0
リフレクションって何?
2018/12/02(日) 20:03:59.45ID:Vovs5evr0
ggrks
2018/12/02(日) 22:24:30.53ID:h/Y7nr/g0
文字列を変数名として扱う仕組みのこと
2018/12/02(日) 22:36:49.76ID:AtVX1yZrM
>>774
答えられないなら黙ってればいいのに
2018/12/02(日) 22:42:42.22ID:HHTlCBKM0
>>776
それはお前も同じ
2018/12/03(月) 01:50:08.39ID:CtimMCgY0
>>777
え???
2018/12/03(月) 09:10:29.70ID:7GT4duU30
>>778
マジガイジかよ…
生ゴミはとっととくたばれ
2018/12/03(月) 10:30:31.17ID:58uLWeIid
>>779
お前がな
781デフォルトの名無しさん (ワッチョイ b39d-hzet)
垢版 |
2018/12/03(月) 14:27:17.52ID:1qcFF+t30
ClassA,ClassB,,,のインスタンスをJsonで保存したい。

Class Ihozon{
void init(){} //変数を初期化
string serialize(ClassA str){ }
ClassA deserialize( string json){ }
}
というインターフェースを作って保存処理は共通化したいと思うのだが、Serializeするのにクラス名の
引数が必要になるので共通化できない。こういう場合どうしたらいいの?
2018/12/03(月) 15:09:15.55ID:kXdIrz5+a
>>781
ちょっと何言ってるのかよく分からないところがあるので
勘違いかもしれないけど、普通にジェネリックメソッドにするだけじゃないの?

public static string JsonSerialize<T>(T obj) {...}
public static T JsonDeserialize<T>(string json) {...}
783デフォルトの名無しさん (ワッチョイ b39d-hzet)
垢版 |
2018/12/03(月) 15:51:51.32ID:1qcFF+t30
jeneric interface をつかったらいいんだね。できました。ありがとう。
2018/12/03(月) 16:33:19.27ID:k9BWMLgHp
インスタンスを保存して何か良い事あるのか?
言葉の違いなだけならいいが…クラス内の値を保存するんだよな?
クラスのある位置を示すポインタを保存するんじゃないんだよな?
2018/12/03(月) 16:45:46.51ID:wi/+8SfFd
>>784
アスペ
786デフォルトの名無しさん (ワッチョイ b39d-hzet)
垢版 |
2018/12/03(月) 17:31:56.17ID:1qcFF+t30
public interface Ijson<T> {
T deserialize(string json);
string serialize(T js);
void init();
}
public class ClassA : Ijson<ClassA>
{ }
ClassAをシリアライズしたいのだけでど、Interfaseするんはわかったんだが内部に
つねに class ClassFile{ void FileSave() {} void FileLoad(){} } を継承もしたい。
(中が固定なのでいちいち実装したくない)
ClassA A = new ClassA();
A.FileLoad(); // これでAはファイルデータで初期化したい。
継承とinterfaceを同時にやるってどうやるの?
2018/12/03(月) 17:49:03.84ID:PYYWjLDMd
System.Web.Mail.MailMessageクラスのFieldプロパティでCDOのFieldを追加してました。

System.Webは古いからSystem.Net.Mailを使えと警告が出るので置き換えようとしてみたところ、対応する方法が見つかりませんでした。
ご存知の方いないでしょうか。
788デフォルトの名無しさん (ワッチョイ b39d-hzet)
垢版 |
2018/12/03(月) 18:01:20.51ID:1qcFF+t30
>>786
自己解決:Interfaseやめてジェネリックのクラス使えばできました。
789デフォルトの名無しさん (ワッチョイ b39d-hzet)
垢版 |
2018/12/03(月) 21:15:19.45ID:1qcFF+t30
別のプロジェクトからCopy してきた Form1をNameSpace名をこのプロジェクトに
あわせて
var fm = new Form1();
fm.ShowDialg();
とやっても、空のフォームが立ち上がる。なぜなんだろう?
2018/12/03(月) 22:08:22.85ID:jwp068Q1a
>>789
エディタのキャッレットを
> var fm = new Form1();
この行のForm1の箇所に置いてF12を押す
2018/12/03(月) 22:10:11.00ID:yskaDDV40
>>786
もう解決してるみたいだけど、一応。
Interfaceと継承を指定する場合は、カンマ(,)で区切って並べるだけ。
792デフォルトの名無しさん (ワッチョイ b39d-hzet)
垢版 |
2018/12/04(火) 04:22:30.94ID:16QpsEK/0
>>790
ありがとう。解決しました。
InitializeCompornent();の呼び出しが消えていた。
なんでだろ。消した覚えはないんだけど。
793デフォルトの名無しさん (ワッチョイ b39d-hzet)
垢版 |
2018/12/04(火) 04:55:27.00ID:16QpsEK/0
>>791
interfaceを使えないかトライしてみましたが、どうもうまく行かないです。
ClassFileはIjsonをインターフェースする必要があって、Ijsonのinit()はClassAのプロパティや
変数の初期化なのでClassAの中でしか実装できません。なので
ClassFile:Ijson<ClassA>
ClassA:ClassFile<ClassA>
のような構成になります。しかし問題があります。
問題:ClassFileの中ではinit()は実装したくないのに、実装を余儀なくされるが、初期化したい変数は
ClassAの中にあるので困る。
794デフォルトの名無しさん (ワッチョイ b39d-hzet)
垢版 |
2018/12/04(火) 05:04:31.89ID:16QpsEK/0
clsAのインスタンスに代入する方法ってこれでいいのでしょうか?
public class clsA: clsJson <clsA>
{
public void ParamLoad() {
clsGamenParam v = this;
v = base.ParamLoad();
}
}

public class clsJson<T>{
public T ParamLoad(string IniName = "") {
T param = default (T);
param = deserialize(json);
return param;
}
}
2018/12/04(火) 10:13:14.55ID:4uTJLjzta
splitcontainerで上下分割してて、
最大化させてもpanel1の方は縦幅(height)は変わらないようにしたいのだけど
どのプロパティで設定できるのでしょうか
2018/12/04(火) 10:17:41.08ID:1iwBpvbbp
初期化を隠蔽したい?
なら隠しメンバーに初期化済みフラグを持つことだな。
2018/12/04(火) 10:29:22.89ID:P8iyvSfE0
>>795
FixedPanel
2018/12/04(火) 22:37:30.63ID:TaxB7EJj0
ピクチャーボックスに線を書くとか丸を書くとかした後にクリックで線を選択出来たりとかします?
エクセルで言うオートシェイプ見たいな感じで
2018/12/04(火) 22:40:16.97ID:zGwuExf2M
>>798
できません
2018/12/04(火) 22:41:05.29ID:LDdnm3po0
出来るよ
日本じゃコード例殆ど無いけど海外ならそこそこ見つかる
2018/12/04(火) 22:44:12.07ID:zGwuExf2M
そりゃスクラッチで作ればできるだろうな
>>798のような質問をしてるレベルならまず無理だが
2018/12/04(火) 23:34:36.38ID:S3l73Gw8a
>>798
円や直線みたいな単純な図形でアンチエイリアスとかも不要なら
確かVBer向けのシェイプコントロールってのがあったはずだから、それを使えば一発だね
http://www.atmarkit.co.jp/fdotnet/dotnettips/781winlineshape/winlineshape.html
描画するんじゃなくて子コントロールを加える形になると思うけど
2018/12/05(水) 13:01:06.99ID:6cU8181gd
シングルトンパターン実装が面倒だからstatic実装をしてしまう私は雑魚なのでしょうか
いつインスタンスが作られるかぐらいの差しかないんじゃないのぉぉぉお起動時に一度だけ呼ぶ使われ方ならぁぁぁあ
2018/12/05(水) 13:04:16.51ID:aXYPARRR0
ソロなら何でもいいよ
2018/12/05(水) 13:24:54.14ID:mkn+H/81M
>>803
グローバル変数を作る目的でシングルトンにするくらいなら、Globalクラスでも作ってそのstaticフィールドとして持たせて共有したほうがマシ
シングルトンが用いられる大抵のケースでは、アプリでクラスAのインスタンスが一つしか必要とされないという要件を、
誤ってクラスA側に持ち込んでしまい不必要な制限をクラスAに対して与えている
基本的にシングルトンはアンチパターンであり、使うべきではないと考えておけばいい
2018/12/05(水) 13:58:19.38ID:p3OBsqIWp
グローバル変数が必要になったケースというのが今までにない気がする
2018/12/05(水) 18:56:11.79ID:ZBoGDzWjM
ログとかデバッグ用情報とかあったほうがよくね?
引数にログ渡すのも面倒やし
2018/12/05(水) 19:00:23.97ID:ZBoGDzWjM
すべてのインスタンスをグローバル神クラスに突っ込む方法で管理してる現場も
案外良かったよ
リークの類に強いのがよかった
ひと目でわかるし
2018/12/05(水) 19:14:24.09ID:24zuz0jWa
>>803
C#のstaticクラス導入の理由の少なくとも一つがそれだったはずだから
いいんじゃないですか

>>805
おおむねその通りだと思うけど、質問の答えになってない気がするw
2018/12/05(水) 20:00:32.14ID:xXLuhtRv0
えーリソースひとつしか無いのにあちこちで呼ばれて困るわ。セマフォ使うにもシングルトンにしないと意味ないし。
2018/12/05(水) 21:40:54.86ID:9TXdxV+e0
そこでPrism.Unity等のDIコンテナですよ
2018/12/06(木) 17:22:48.54ID:PXx1OaoO0
そういやDIコンテナってどういう仕組みになってんのか全然わからん
コンストラクタの引数をインターフェイスにするだけで、登録済みのオブジェクトを自動的に注入してくれるわけだけど・・・・
あれってコンストラクタの呼び出し側は一体どんな仕組みになってるの?
そもそも引数のインターフェースを増やそうが減らそうがコンパイルエラーが起きないって、呼び出す側は一体どうなってるのかしら
2018/12/06(木) 17:34:01.28ID:hvLOwgvNM
>>812
普通にリフレクションで引数の情報取ったりコンストラクタ呼んでインスタンス作ったり簡単にできる
814デフォルトの名無しさん (ワッチョイ abeb-3M3s)
垢版 |
2018/12/06(木) 17:45:26.67ID:PXx1OaoO0
>>813
ありがとう
リフレクションは全然使ってなかったので勉強してくるよ
815デフォルトの名無しさん (ワッチョイ 899e-ZtDu)
垢版 |
2018/12/06(木) 23:07:45.72ID:LqRlvnk/0
リフレションとかバカしか使わないわ
2018/12/06(木) 23:24:16.18ID:8fboZWCH0
デバッグ用に良さそうと思ってたら
winformにそのものがあるしね
2018/12/06(木) 23:24:59.62ID:8KxpykpJ0
属性で使いまくってるじゃん
818デフォルトの名無しさん (ワッチョイ 899e-ZtDu)
垢版 |
2018/12/06(木) 23:47:06.96ID:LqRlvnk/0
リフレクションはウンコみたいな依存関係を作る元凶だからな
まともなヤツならまず使わない
2018/12/06(木) 23:55:23.28ID:FaxHPz5Y0
リフレクションは便利だよね
時々使うわ
2018/12/06(木) 23:57:45.21ID:cH+4Ya2yd
リフレクションは普通に使うわな
821デフォルトの名無しさん (ワッチョイ 899e-ZtDu)
垢版 |
2018/12/07(金) 00:12:46.91ID:0/x3pMw+0
こうやってクソみたいな依存関係のあるクソコードが量産されていくのがよくわかる
822デフォルトの名無しさん (ワッチョイ 899e-ZtDu)
垢版 |
2018/12/07(金) 00:14:25.89ID:0/x3pMw+0
AというオブジェクトからBというオブジェクトにアクセスする場合
よほどの理由がないかぎりBからAにアクセスすることは避けないといけない

できるだけコンポジションにするべき
この場合、AがBを内包するようにする

コレはシロウトでなければ常識の問題だからな
2018/12/07(金) 00:21:54.56ID:XLGZ01Wf0
リフレクション最高
これからも積極的に使おう
2018/12/07(金) 00:27:55.79ID:OtTuCL9w0
>>822
> AというオブジェクトからBというオブジェクトにアクセスする場合
> よほどの理由がないかぎりBからAにアクセスすることは避けないといけない
何で?

例えば俺がAでお前がBだったとする
俺からお前を殴るかもしれんし
お前から俺を殴るかもしれん

どちらにしろ
お前はすでに死んでいる
2018/12/07(金) 00:28:53.29ID:frCtIBO+0
おめえに俺はなぐれねえ
2018/12/07(金) 00:29:03.36ID:u+M3piYs0
>>815
おばか
827デフォルトの名無しさん (ワッチョイ 899e-ZtDu)
垢版 |
2018/12/07(金) 00:32:37.34ID:0/x3pMw+0
低学歴知恵遅れほど
継承とリフレクションをうれしがって多用するからな

まさに
オブジェクト指向に低学歴知恵遅れは
キチガイに刃物
2018/12/07(金) 00:37:33.94ID:UtwEaJZea
おじさんはこれを思い出した
https://youtu.be/YLhuSYTySVM
2018/12/07(金) 00:44:42.63ID:yHtgxfh3d
リフレクションを使わないソースコードなんて気の抜けたコーラだろ
2018/12/07(金) 01:12:03.95ID:u+M3piYs0
使ってることに気づいてないだけ
2018/12/07(金) 03:53:19.21ID:4tv6nv6l0
64bitの.NET Core でSQLite使いたい時はどれ落とせばいいんですか?
http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki

.NET Core用のは以下の1つしかないっぽいけど、これ使うと、"間違ったフォーマットのプログラムを読み込もうとしました。"とエラーが発生します。
Precompiled Binaries for the .NET Standard 2.0 (.NET Core 2.0)

過去の.net frameworkの経験上、bit違いでこのエラーが出るようなんですが、Core用SQLite.dllが上記しかないので、どうしようもない状態です。
2018/12/07(金) 07:11:23.20ID:u+M3piYs0
EF Coreのマイグレーションで自動生成したことしかないわ
833デフォルトの名無しさん (ワッチョイ 89f7-e/g/)
垢版 |
2018/12/07(金) 08:35:25.92ID:TvdhMF8B0
気ままにREFLECTION
2018/12/07(金) 08:37:40.31ID:2afnIVVGa
>>831
Coreなら尚更だけど、今時手動でDLLを入れるのはやめろ
NuGetで一発
2018/12/07(金) 08:55:42.95ID:CXp+sqegd
ああdllの話かw
こないだNuGet知らないやつがいて驚いたわ
2018/12/07(金) 09:11:59.73ID:t0xhrKmJM
リフレクションが止まらない
2018/12/07(金) 09:28:53.50ID:0Ncculaf0
>>831
UWPでは、System.Data.Sqliteとは別系統のMicrosoft.Data.SQliteというMSご謹製のライブラリがあるのでそっちを使ってください
ちなみにDapperはマトモ動きませんのでEF Core使うか直にADOやらないと駄目だけどね
2018/12/07(金) 10:45:05.23ID:CXp+sqegd
>>837
Dapperについて詳しく
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況