問題タブ [createinstance]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
1717 参照

c# - C# プライベート T CreateObject()

のような動的パラメータを持つオブジェクトのインスタンスを作成したい

修正なしで試してみたい 「startconfig」のようなタイプ。それでもうまくいきません。助けてもらえますか?

とにかくこれは機能しません。原因: タイプまたは名前空間名 'type/namespace' が見つかりませんでした (using ディレクティブまたはアセンブリ参照がありませんか?)

これは、ser.Deserialize(sr); のキャスト時に発生します。

0 投票する
1 に答える
3126 参照

c# - オブジェクト変数に格納されているオブジェクトの新しいデフォルトインスタンスを作成するにはどうすればよいですか?

以下の例は、その意図を示しています。この例では、オブジェクトの配列を反復処理し、デフォルト値がロードされた同じタイプの配列を作成しています。値自体をあるリストから次のリストにコピーする必要はありません。これは、リストの「タイプクローン」のようなものです。

以下のコードは、アクティベーターに対して次のエラーを生成します。

「System.Int32はGenericTypeDefinitionではありません。MakeGenericTypeは、Type.IsGenericTypeDefinitionがtrueであるタイプでのみ呼び出すことができます。」

Activator、CreateInstance、およびMakeGenericTypeの詳細は、まだ少し混乱しています。

エラーを回避するためにコードを変更するにはどうすればよいですか?

任意の提案をいただければ幸いです。

期待される出力は次のようになります。

  • System.Int32
  • System.String
  • MyNamespace.clsMyClass

結果の値は次のようになります。

  • b [0] = 0
  • b [1] = ""
  • b[2]=新しいclsMyClass
0 投票する
2 に答える
1933 参照

c# - クラスからコードを実行せずにクラスのインスタンスを作成することは可能ですか? (ctor なし、フィールドの初期化なし)

インターフェイスを実装するサード パーティのプラグイン (DLL) を取り込むエンジンを作成しました。

プラグインされるコードを制御できないため、正しいクラスから (インターフェイスから) 1 つの特定のメソッドを実行できるようにしたいと考えています (インターフェイス化されたクラスが見つかるまで GetTypes ループ)。

Activator.CreateInstanceで実行される優れたコンストラクター コードは誰でも作成できるため、 FormatterServices.GetUninitializedObjectを使用して解決できます。しかし、クラスのフィールドでコードが初期化されている場合、それは役に立ちません。

両方の方法 (CreateInstance/GetUninitializedObject) の問題は、別のクラスのコンストラクター実行されることです。

あなたが私のニーズを分析し始める前に。これは、一連の標準値を取得するためにエンジンを初期化するときにのみ実行されます。この get'er が他の初期化された値に依存している場合、有効な値が返されないため、「プラグイン」は失敗としてマークされます。失敗としてマークされていない場合、後でクラスはActivator.CreateInstance()で適切にロードされます。

ですから、この質問に固執してください: .Net は、100% 初期化されていないクラスを作成する方法をサポートしていますか?

回答を更新します。質問を投稿する前にこれをテストしました。

他のクラスが実行されないという答えについては、すでにテスト済みで、静的であれば実行されます。

CreateInstance はメッセージ ボックスを表示します。GetUninitializedObject はそうではありません。

CreateInstance はメッセージ ボックスを表示します。GetUninitializedObject はメッセージ ボックスを表示します。

静的フィールドの初期化子と ctors を回避する方法はありますか?

0 投票する
2 に答える
168 参照

c# - 動的に作成されたカスタム型の配列が null 値のインスタンスを返すのはなぜですか?

そこで、インデックス 0 と 1 に 2 つの「空/初期化されていない」オブジェクトを期待して、動的に配列を作成するこの単純なコードを作成しました。

私はとても基本的な何かが欠けています... わかりません。前もって感謝します。

0 投票する
1 に答える
8315 参照

jaxb - Jaxbによって生成されたObjectFactoryを使用する方法は?

Jaxbを使用してJavaクラスを生成しています。私のスキーマには次の要素が定義されています。

ご覧のとおり、Automobileという要素が1つあります。

Jaxbは、Automobileのインスタンスを作成するために使用するクラスとObjectFactoryを作成します。私を困惑させるのは、自動車のインスタンスを作成する方法は次のとおりです。

createAutomobileメソッドに引数があるのはなぜですか?この方法を使用するにはどうすればよいですか?

私は次のことを試しました:

ただし、 Automobileクラスは抽象であり、インスタンスを作成できないため、これはコンパイルされません。

0 投票する
1 に答える
520 参照

c# - C# ロード アセンブリとライブ更新フォーム

これを検索して検索してみましたが、間違ったものを検索しているのかもしれません。

私は動的にロードされるいくつかの DLL を追加できる一種のコントロールパネルを作成しています。DLL をロードするのも実行するのも問題ありません。現在、これを行うために「Activator.CreateInstance」を使用しています。

メソッドは、私がやりたいことを正確に実行しています。

しかし...いくつかのことについて助けが必要です:

1: DLL を実行しているときに、フォームをスレッドで実行しているにもかかわらず、フォームがフリーズします。これを回避するにはどうすればよいですか?

2: ライブで DLL の現在のステータスを読み取ることができる必要があります。DLL ファイルはスーパークラスで作成されているため、「CurrentStatus」プロパティを読み取ることができます。実行中のファイルのこのステータスを読み取ることは可能ですか? プログラムがDLLの終了を待っているため、フリーズしているように思えます。

うまくいけば、あなたの何人かが私を助けることができます.

前もって感謝します :)

編集:いくつかのコードを追加する

0 投票する
3 に答える
3248 参照

.net - 型からインスタンスを作成するための moq を取得できません - 「このオブジェクトにはパラメーターなしのコンストラクターが定義されていません。」

Moq を使用して、Activator.CreateInstance を介して動的に作成したいデータ クラスをスタブ化しようとしています (Moq がスタブ インスタンスである Moq.Object.GetType() を介して) その型を渡しますが、取得しますSystem.MissingMethodException {"No parameterless constructor defined for this object."}

私は何を間違っていますか?Moq に対応するためにサブジェクト コードを変更したくありません。

テスト

主題