問題タブ [activator]

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 投票する
1 に答える
1896 参照

.net - null を返す System.Activator.CreateInstance

私が抱えている問題は、CreateInstancenull を返すことです。

コードは次のとおりです。

AttackSpecialAttackはどちらも基本情報を格納するクラスで、 から継承されUnityEngine.Objectます。

Attmonospattmonoは両方ともMonoScript配列で、attmono16 個とspattmono4 個を保持できます。

彼らはそこから情報を取得します。

MonoScriptオブジェクトがどのクラス タイプであるかを保持するものと考えることができます。Debug.Printこれらのそれぞれをステートメントでチェックしましたが、割り当て時に両方とも null ではありません。

これがSpecialAttackコードです。

最近これをテストしました

そして、それは実際にはnullだったので、アクティベーターがタイプを見つけることができないと私は信じているので、ここから何をすべきかわかりません。

0 投票する
4 に答える
1658 参照

c# - C#は、インターフェイスを指定して文字列からクラスをインスタンス化します

ユーザーインターフェイスから取得する文字列に基づいてクラスのインスタンスを作成しようとしています。次に、クラスのインスタンスのプロパティにアクセスしたいと思います。

これが私がこれまでに持っているものの概要です-

更新: 現在、「値をnullにすることはできません」という例外が発生しています。これは、指定された文字列を指定すると、クラスのインスタンスを作成できないことを意味します-

0 投票する
0 に答える
753 参照

c# - C#、Type.GetType() がすべての場合に文字列からクラス名を返さない

私のコードはこのようなものです

上記のコードでは、キーを namespace-qualified として渡しています。// コードのカスタマイズ セクションが数日間完全に機能していなかった場合。それから突然、それは動揺し始めました。場合によっては文字列からクラス名を返し、場合によってはそうではありません(nullを返します)。キーから生成されるすべてのクラス名は、このメソッドからアクセスできます。そのようなアクセシビリティの問題はありません。

ドキュメントhttp://msdn.microsoft.com/en-us/library/w3f99sx1.aspxを見ました。備考欄にそう書いてある

GetType は、ディスクから読み込まれたアセンブリに対してのみ機能します。GetType を呼び出して、System.Reflection.Emit サービスを使用して定義された動的アセンブリで定義された型を検索すると、一貫性のない動作が発生する可能性があります。動作は、動的アセンブリが永続的であるかどうか、つまり、System.Reflection.Emit.AssemblyBuilderAccess 列挙体の RunAndSave または Save アクセス モードを使用して作成されているかどうかによって異なります。動的アセンブリが永続的で、GetType が呼び出される前にディスクに書き込まれている場合、ローダーはディスク上に保存されているアセンブリを見つけ、そのアセンブリを読み込み、そのアセンブリから型を取得します。GetType が呼び出されたときにアセンブリがディスクに保存されていない場合、メソッドは Nothing を返します。GetType は一時的な動的アセンブリを認識しません。したがって、一時的な動的アセンブリで GetType を呼び出して型を取得すると、Nothing が返されます。

それは私に問題を引き起こしている何かですか?. 誰でも助けることができます。

0 投票する
5 に答える
10268 参照

c# - Type.GetType(string typeName) は null を返します

私のコードは

私が渡すキーは名前空間修飾名です。

私のコードは BusinessLayer にあります。DataAccessLayer のインスタンスを作成しています。DataAccessLayer 参照が BusinessLayer に追加されました。

「アセンブリ 'BusinessLayer、Version=1.9.3.0、Culture=neutral、PublicKeyToken=null' からタイプ 'Catalyst.DAL.ExamDAO.CExamDAO' をロードできませんでした」というエラーが表示されます。.

クラスが DataAccessLayer からのものであることを明示的に指定するにはどうすればよいですか?

キー値は「Catalyst.DAL.ExamDAO.CExamDAO」です

編集 :

私の実際のコードは

カスタマイズがない場合は、デフォルトのクラスをロードしようとしています。メソッドは BO にあります。キーを任意の Bo 型の名前空間修飾名として渡すと、変換されます。しかし、DAOタイプはそうではありません

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

wcf - Activator.CreateInstanceは、ユーザーがローカルにログインしている場合にのみWebサービスで機能します

Activator.CreateInstanceユーザーになりすましてCOMオブジェクトを作成するために呼び出すWCFサービスがあります。

としてローカルでサーバーにログオンするとimpersonatedUser、すべてが期待どおりに機能します。 Client.exeと同様に、プロセスとして存在しViewer.exeます。両方とも、COMオブジェクトをアクティブ化したときに作成されます。

ただし、としてローカルにログオンしていない場合は、プロセスとしてimpersonatedUserのみClient.exe作成され、次のエラーが発生します。

私の唯一の推測は、ユーザーが他の方法でログオンしていない場合、システムは十分なメモリを割り当てないということですか?問題が何であるかは他にわかりません。助言がありますか?

助けてくれてありがとう!

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

c# - インターフェイスにジェネリックがある場合、Activator からオブジェクトをインスタンス化するにはどうすればよいですか?

私のコードでは、次のインターフェースがあります

リフレクションを介してこのインターフェイスを使用するすべての型を取得し、それらをインスタンス化しようとしています。通常、私は次の行に沿って何かをします:

ただし、ジェネリックを扱っている場合、これは機能しません。これは、キャスト時にジェネリック型を知る必要があり、実装された型ごとに異なる可能性があるためです。

これは可能ですか?

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

.net - このActivator.CreateInstanceの呼び出しの理由は何ですか?

私は他の誰かのコードを維持していて、彼らはメソッドにこのセクションを持っています:

ReportCriteriaInstaceでインスタンス化した後、1行で異なる値に設定されている理由がわかりませんCreateInstance()

それとは別に、既知の型をCreateInstanceMyCompany.Utils.ReportStructure.ReportSearchCriteria)に渡すので、代わりにnew()を使用しない理由はありますか?いくつかのデフォルトのパラメーターなしのコンストラクターの理由は、私が多分得られないのですか?

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

c# - クラスおよびActivator.CreateInstance

ここにいくつかのクラスがあります:

そして、私はこれを行うことによってこのクラスのオブジェクトをインスタンス化しようとしています:

そして、私が得るのはSystem.MissingMethodException(このオブジェクトには引数なしのコンストラクターはありません)...

私のコードの何が問題になっていますか?

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

c# - タイプアクティベーションにNinjectを使用する

Ninjectに組み込まれているメソッドで、アセンブリ修飾名を指定して任意の型を動的にインスタンス化できるものはありますか(カスタムで型を手動でバインドする必要はありNinjectModuleません)。

もちろん使用することもできますActivator.CreateInstanceが、すでにNinjectを使用しているので、この方法を使用するよりも、それに固執する方が好きです(ちなみに、かなり遅いと聞きました)。

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

c# - TypeLoadException をスローする Activator.CreateInstance(string, string)

次のコードがあります。

次のようなクラスがDummyScheduledTaskExecutorあります。

これは、アセンブリ名 (アセンブリのプロパティで定義されている) が であるアセンブリに存在しますTests.WebApplication.Application.Unit

私の呼び出しはInvoke(string, string)次のようになります。

このコードを実行しようとすると、TypeLoadException がスローされます。アセンブリ名または型名を間違って表現したのでしょうか、それとも何か他のことが起こっていますか?