2011-06-22 3 views
0

タイプが与えられた場合、Appleと入力して、Appleをサービス参照プロキシタイプとして自動生成する場合に作成される同等のタイプを作成します。元のタイプからのサービス参照インスタンスのインスタンスを作成しますか?

したがって、のタイプはAwesomeWebService.Appleですが、AwesomeWebServiceサービスのプロキシクラスが生成されると、そのタイプはプロキシを保持するアセンブリにとってローカルなものになります。

それはトリックは私が(Appleまたはそれ以外)を作成したいのか、プロキシタイプ実行時までわからないですOtherAssembly.AwesomeWebServiceProxyReference.Apple

のようなものになります。これは簡単すぎるでしょう。

私はService Reference Clientのインスタンスを持っています。たとえば、OtherAssembly.AwesomeWebServiceProxyReference.AwesomeWebServiceSoapClientですが、これまでのタイプと一緒にこの情報を使用して、私が行ったプロキシタイプを取得できませんでした。試してみると、タイプがアセンブリで見つからないというエラーが表示されます。 "OtherAssemblyNameは" proxyClientType.GetType().Assembly.FullNameから収集され、 "TypeNameOfOriginalは" originalType.GetType().Name

Activator.CreateInstance("OtherAssembly", "Apple"); 

答えて

0

はそれを考え出したです

Activator.CreateInstance("OtherAssemblyName", "TypeNameOfOriginalType"); 

最も簡単な方法は、(パラメータ)のオブジェクトを作成し、ParameterInfoオブジェクトを取得し、そこから正確なTypeを取得しようとしていたメソッドを取得することでした。

Type t = proxy.GetType(); 
MethodInfo m = t.GetMethodInfo("methodName"); 
ParameterInfo[] mParams = m.GetParameters(); 
string typeName = mParam.ParameterType.AssemblyQualifiedName; 
関連する問題