問題タブ [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.
c# - Activator.CreateInstanceを使用するときに注入されたインスタンスを解決する
CastleWindsorにを使用して作成されたオブジェクトの依存関係を解決させる方法を理解しようとしています Activator.CreateInstance
。
現在、この方法でオブジェクトを作成すると、作成されたオブジェクト内の依存関係が解決されません。依存関係を解決しながら同じことを行うWindsorメソッドがあるかどうかを調べてみましたが、これまでのところ何も見つかりませんでした。
このようにインスタンスを作成する理由については、基本的なテキストゲームを少し楽しんでいます。インスタンスはユーザー入力コマンドに基づいて作成されているため、文字列に基づいてインスタンスを作成する必要があります(現在、コマンドはディクショナリでタイプにマップされており、上記の方法を使用して作成されます)。
助けてくれてありがとう。
c# - C#でIDispatchExをどのようにインスタンス化しますか?
これが私の最初のSO質問です!COMオブジェクトをインスタンス化し、IDispatchExにキャストして、そのメンバーを列挙できるようにします。次に例を示します。
私のIDispatchExは、GetNextDispIDとGetMemberNameがintを返すことを除いて(私のWebサイトではなく)このWebサイトのものと同じです( MSDNで説明されているようにHRESULTに使用したい)。
上記の例は機能しません。Active ScriptingキャストからIDispatchExインターフェイスにキャストするようにCOMオブジェクトをインスタンス化する方法はありますか?
ありとあらゆる助け/提案をありがとう!
c# - CreateInstanceの戻り値をキャストする方法
タイプが不明な場合、CreateInstanceからの戻り値をどのようにキャストしますか?
たとえば、このコードでは次のようになります。
mInfo.ReturnTypeに含まれるものにoをキャストするにはどうすればよいですか?
com - Excel.Application に IDispatch.GetTypeInfo() を使用すると Visual Studio IDE がクラッシュする
COM コンポーネントとやり取りするアプリケーションを作成していますが、Visual Studio 10 IDE でアプリケーションを実行しているときに Excel.Application コンポーネントを操作しているときに問題が発生しました。致命的なメモリ不足エラーが発生しています。EXE を実行するだけですべてが正常に動作しますが、デバッグ機能が大幅に制限されます。この方法でアクセスした他のすべての COM コンポーネントは、自家製のコンポーネントと市販のコンポーネントの両方を含め、正常に動作します。
このクラッシュを示すコンソール アプリを次に示します。簡単にするために、すべてのエラー処理を削除しました。問題のあるコードの周りに try/catch ブロックを配置しても役に立ちません。このプロジェクトには、CustomMarshalers.dll への参照が必要です。
問題は単に Excel のサイズによるものだと思います。
c++ - C++ のファクトリ パターン: 明示的な createInstance() メソッドを自動的に生成する
私はC++フレームワークを書く際に問題があり、ユーザーはそれを使用できるよりもオーバーヘッドが少ないはずです。ユーザーは、フレームワークの BaseClass から派生したクラスを含む共有ライブラリを作成し、その派生クラスのインスタンスを返すために extern "C" createInstance() メソッドを実装することで、自分の作業をフレームワークに公開できます。したがって、フレームワークは、dlsym() を使用して共有ライブラリを介して createInstance-Method を呼び出すことにより、ユーザー クラスにアクセスできます。
フレームワーク:
私の質問: ユーザーが考える必要がないように、各ユーザー ライブラリで冗長な UserXcreateInstance() メソッドを生成することは可能ですか?
テンプレート+マクロで可能だと思っていましたが、これを行う方法はまだ見つかりません...
別のアプローチとして、dlsym と適切な名前マングリングを介して任意のユーザー クラスのコンストラクターを直接呼び出すことを考えていました。(構成ファイルから名前空間とクラス名を知っています)しかし、これが適切な解決策だとは思いません。特に、コンストラクター呼び出しは通常の関数呼び出しと同じではありません...しかし非常に興味深い...
c# - Activator.CreateInstance(type) に代わるオブジェクトの高速作成
アプリケーションのパフォーマンスを改善しようとしています。多くの Activator.CreateInstance 呼び出しがあり、問題を引き起こしています。
インターフェイス (ITabDocument) に基づいて多くのクラスをインスタンス化し、いろいろ調べた後、次のコードを使用することを考えました。
このコードは、私たちが持っていた Activator.CreateInstance コードを使用するよりも優れているわけではありません (実際、わずかに遅くなります)。
これがなぜなのか疑問に思っています。私がやっていることは次のとおりです。
上記を支援するオブジェクトを作成するより良い方法はありますか? 具体的なタイプがわからない場合は少し難しいです。
c# - Silverlight Windows Phone 7のActivator.CreateInstance(string assemblyName、string typName)
Windows Phone 7アプリでActivator.CreateInstance(string assemblyName、string typName)(http://msdn.microsoft.com/en-us/library/d133hta4%28v=VS.100%29.aspx )を使用したい。しかし、それはうまくいかないようです。
解決策や回避策のアイデアはありますか?
c# - CreateInstanceFromAndUnwrap が Web コンテナーで機能しないのはなぜですか?
こんにちは、次のようなコードがあります。
私のテスト コード (つまり、Web コンテナー内ではない) では、魅力的に動作し、まったく文句を言わずにアセンブリをロードします。しかし、それを自分のアプリケーション (Web コンテナー、II7/ または VS2010 dev コンテナー) で実行すると、突然、次のように不平を言い始めます。
「メンバーの型が解決されていません '... , ... , Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'."}"
アプリケーション呼び出しとまったく同じパラメーターを使用して Load() メソッドを呼び出すようにテスト ケースを変更したところ、テスト コード (Web コンテナーの外部) は正常に動作し、アプリケーション コードは上記のエラーをスローします。
c++ - CreateInstanceは「指定されたモジュールが見つかりませんでした。」を返します。
私はでWindows 2000
動作するように動作するプログラムを取得しようとしていWindows 2003
ます。プログラムを動作させるためにこれまでにやらなければならなかったことはすべてWindows 2003
、正しくない構成に関係していました。現在、このコードは次のとおりです。
戻ってきました:
または言い換えれば:
他に2つのプログラムと別の.dllがあり、それらのクラスのインスタンスを正常に作成できます。しかし、これは失敗するようです。
私は以前Procmon
、プログラムが何を見つけられないかを理解しようとしましたが、プログラムがProcmon
何かを見つけられなかったことを示す可能性のあるものは何も表示しませんでした。
でOleView
、クラスのインスタンスを作成しようとすると、次の画像が表示されます。
画像の左側を見ると、のインスタンスを作成しようとするPFComgMng
と同じエラーが発生します。(PFAdapterEnv
そしてPFCompMng
同じプロセスを使用しますPFAdapterMng.exe
。)ただしPFMQMonitor
、、、PFSend
およびPFTrace
すべてが正しく機能します。(、、、およびを使用PFMQListen.exe
します。)PFSend.dll
PFTraceService.exe
私が注意したかったもう1つのことは、次のコードです。
から以前に呼び出された場合は、完全に正常に機能しPFAdapterMng.exe
ます。したがって、モジュールを正常に見つけてインスタンスを作成できるように見えPFAdapterMng.exe
ますが、クラス内のいずれかのインスタンスを作成しようとする他のプロセスPFAdapterMng.exe
はモジュールを見つけることができず、このエラーが発生します。
この特定のケースを支援していないのでProcmon
、他のプロセスがモジュールを見つけるのを妨げているものを理解するために私が何ができるかを誰かが知っていますか?
アップデート:
サービスとして実行する必要があるため、Dependency Walker
プロファイリングで実行できません。プロファイリング中に実行し、のインスタンスを作成して、メッセージボックスが表示された理由を調べようとしました。残念ながら、何かが欠けていることを示していませんでした。PFAdapterMng.exe
PFTraceService.exe
Dependency Walker
OleView
PFAdapterEnv
PFCompMng
Module not found
Dependency Walker
UPDATE2:
ログに何かが足りなかったProcmon
ので、通話をステップオーバーする直前と通話の直後にイベントをキャプチャして新しいログを作成しましたCreateInstance
。多分誰か他の人が見て、私がそれを逃したかどうか教えてくれるでしょうか?何かを見つけることができなかった兆候を見つけることがPFMQListen.exe
できません。
Procmon
これは、ファイル、.csv
ファイル、およびファイルを含むzipフォルダーへのリンク.xml
です。
http://www.mediafire.com/?07jq8zj7emmpsvd
UPDATE3:
そのため、Dependency Walker
プロファイルモードで実行して、のインスタンスを作成することができましたPFAdapterEnv
。 Dependency Walker
欠落しているものは見つかりませんでした.dll
。
したがって、Procmon
何も表示されません。また、表示されませんDependency Walker
。アセンブリレベルでコードをステップ実行していたollydbg
ところ、関数でエラーが発生したことに気付きましたNdrClientCall2
。これが何か意味があるのかわかりません。
他に何を試すことができるかについてのアイデアはありますか?人々は私がこの問題を解決するのを助けるためにもっと多くの情報を必要としていますか?もしそうなら、聞いてください。
UPDATE4:
を使っ/RegServer
てアプリケーションを登録してみましたが、うまくいきました。以前に使用してみましたが、を使用/RegServer
してすべての登録を解除し/UnregServer
ました。今回は、別のIDでComponent Services
実行したかったので、必要なコンポーネントも削除しました。PFAdapterMng
/RegServer
したがって、アプリケーションを実行してダブルクリックすると、すべてが機能するように見えます。ただし、すべてを別の構成で実行したいと思います。
アプリケーションを次のように動作させるためにすべてを構成するにはどうすればよいですか。
PFAdapterMng.exe
-として登録し/Service
、別のIDで実行するservices.msc
PFTraceServer.exe
-として登録し/Service
、別のIDで実行するservices.msc
PFMQListen.exe
-/RegServer
によって開始されるものとして登録しますPFAdapterMng
PFMQSend.dll
-に登録Regsvr32
され、によってロードされますPFAdapterMng
ありがとう、Krzys
.net - null を返す System.Activator.CreateInstance
私が抱えている問題は、CreateInstance
null を返すことです。
コードは次のとおりです。
Attack
とSpecialAttack
はどちらも基本情報を格納するクラスで、 から継承されUnityEngine.Object
ます。
Attmono
とspattmono
は両方ともMonoScript
配列で、attmono
16 個とspattmono
4 個を保持できます。
彼らはそこから情報を取得します。
MonoScript
オブジェクトがどのクラス タイプであるかを保持するものと考えることができます。Debug.Print
これらのそれぞれをステートメントでチェックしましたが、割り当て時に両方とも null ではありません。
これがSpecialAttack
コードです。
最近これをテストしました
そして、それは実際にはnullだったので、アクティベーターがタイプを見つけることができないと私は信じているので、ここから何をすべきかわかりません。