問題タブ [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.
.net - null を返す System.Activator.CreateInstance
私が抱えている問題は、CreateInstance
null を返すことです。
コードは次のとおりです。
Attack
とSpecialAttack
はどちらも基本情報を格納するクラスで、 から継承されUnityEngine.Object
ます。
Attmono
とspattmono
は両方ともMonoScript
配列で、attmono
16 個とspattmono
4 個を保持できます。
彼らはそこから情報を取得します。
MonoScript
オブジェクトがどのクラス タイプであるかを保持するものと考えることができます。Debug.Print
これらのそれぞれをステートメントでチェックしましたが、割り当て時に両方とも null ではありません。
これがSpecialAttack
コードです。
最近これをテストしました
そして、それは実際にはnullだったので、アクティベーターがタイプを見つけることができないと私は信じているので、ここから何をすべきかわかりません。
c# - C#は、インターフェイスを指定して文字列からクラスをインスタンス化します
ユーザーインターフェイスから取得する文字列に基づいてクラスのインスタンスを作成しようとしています。次に、クラスのインスタンスのプロパティにアクセスしたいと思います。
これが私がこれまでに持っているものの概要です-
更新: 現在、「値をnullにすることはできません」という例外が発生しています。これは、指定された文字列を指定すると、クラスのインスタンスを作成できないことを意味します-
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 が返されます。
それは私に問題を引き起こしている何かですか?. 誰でも助けることができます。
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タイプはそうではありません
wcf - Activator.CreateInstanceは、ユーザーがローカルにログインしている場合にのみWebサービスで機能します
Activator.CreateInstance
ユーザーになりすましてCOMオブジェクトを作成するために呼び出すWCFサービスがあります。
としてローカルでサーバーにログオンするとimpersonatedUser
、すべてが期待どおりに機能します。 Client.exe
と同様に、プロセスとして存在しViewer.exe
ます。両方とも、COMオブジェクトをアクティブ化したときに作成されます。
ただし、としてローカルにログオンしていない場合は、プロセスとしてimpersonatedUser
のみClient.exe
作成され、次のエラーが発生します。
私の唯一の推測は、ユーザーが他の方法でログオンしていない場合、システムは十分なメモリを割り当てないということですか?問題が何であるかは他にわかりません。助言がありますか?
助けてくれてありがとう!
c# - インターフェイスにジェネリックがある場合、Activator からオブジェクトをインスタンス化するにはどうすればよいですか?
私のコードでは、次のインターフェースがあります
リフレクションを介してこのインターフェイスを使用するすべての型を取得し、それらをインスタンス化しようとしています。通常、私は次の行に沿って何かをします:
ただし、ジェネリックを扱っている場合、これは機能しません。これは、キャスト時にジェネリック型を知る必要があり、実装された型ごとに異なる可能性があるためです。
これは可能ですか?
.net - このActivator.CreateInstanceの呼び出しの理由は何ですか?
私は他の誰かのコードを維持していて、彼らはメソッドにこのセクションを持っています:
ReportCriteriaInstace
でインスタンス化した後、1行で異なる値に設定されている理由がわかりませんCreateInstance()
。
それとは別に、既知の型をCreateInstance
(MyCompany.Utils.ReportStructure.ReportSearchCriteria
)に渡すので、代わりにnew()を使用しない理由はありますか?いくつかのデフォルトのパラメーターなしのコンストラクターの理由は、私が多分得られないのですか?
c# - クラスおよびActivator.CreateInstance
ここにいくつかのクラスがあります:
そして、私はこれを行うことによってこのクラスのオブジェクトをインスタンス化しようとしています:
そして、私が得るのはSystem.MissingMethodException
(このオブジェクトには引数なしのコンストラクターはありません)...
私のコードの何が問題になっていますか?
c# - タイプアクティベーションにNinjectを使用する
Ninjectに組み込まれているメソッドで、アセンブリ修飾名を指定して任意の型を動的にインスタンス化できるものはありますか(カスタムで型を手動でバインドする必要はありNinjectModule
ません)。
もちろん使用することもできますActivator.CreateInstance
が、すでにNinjectを使用しているので、この方法を使用するよりも、それに固執する方が好きです(ちなみに、かなり遅いと聞きました)。
c# - TypeLoadException をスローする Activator.CreateInstance(string, string)
次のコードがあります。
次のようなクラスがDummyScheduledTaskExecutor
あります。
これは、アセンブリ名 (アセンブリのプロパティで定義されている) が であるアセンブリに存在しますTests.WebApplication.Application.Unit
。
私の呼び出しはInvoke(string, string)
次のようになります。
このコードを実行しようとすると、TypeLoadException がスローされます。アセンブリ名または型名を間違って表現したのでしょうか、それとも何か他のことが起こっていますか?