tl; dr
以下は、SharePointでのファイル操作を簡素化するクラスライブラリのapp.configです。アドレスはendpoint
任意のサイトを指しますが、ライブラリが使用されると、正しいサイトに動的に設定されます。
任意のアドレスが変更/存在しなくなった場合でも、DLLは機能しますか?
クラスライブラリをパッケージ化して、ライブラリを参照するプロジェクトに「」endpoint
とbinding
「 」を動的に追加できますか(対話するサイトに基づいて)?
詳細
コピーおよびリストWebサービスを介したSharePointサイトへのアクセスを簡素化するために、C#でクラスライブラリを作成しました。エンドユーザーは、サイトのURLやその他のデータを渡すことで、SharePointのファイルを簡単にアップロード、ダウンロード、および操作できます。彼らがサイトのURLを渡すとき、私はそのURLを使用するようにコピーまたはリスト参照を動的に設定します。これはうまくいきますが、2つの質問があります。
開発時にWebサービスの詳細を取得するには、app.config/web.configに1つのSharePointサーバーへの参照を含める必要があります。そのURLが変更されたり、存在しなくなったりした場合、ライブラリは失敗しますか?
参照時にDLLが含まれていても、アドレス
basicHttpBinding
とendpoint
アドレスを含むapp.configは含まれていません。クラスライブラリを使用しているプロジェクトのweb.config/app.configにそのデータを追加する方法はありますか?
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
</appSettings>
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="CopySoap" maxReceivedMessageSize="419430400">
<security mode="TransportCredentialOnly">
<transport clientCredentialType="Ntlm" proxyCredentialType="None" realm="" />
<message clientCredentialType="UserName" algorithmSuite="Default" />
</security>
</binding>
<binding name="ListsSoap">
<security mode="TransportCredentialOnly">
<transport clientCredentialType="Ntlm" proxyCredentialType="None" realm="" />
<message clientCredentialType="UserName" algorithmSuite="Default" />
</security>
</binding>
</basicHttpBinding>
</bindings>
<client>
<endpoint address="http://www.example.com/subsite/_vti_bin/copy.asmx"
binding="basicHttpBinding" bindingConfiguration="CopySoap"
contract="CopyService.CopySoap" name="CopySoap" />
<endpoint address="http://www.example.com/subsite/_vti_bin/Lists.asmx"
binding="basicHttpBinding" bindingConfiguration="ListsSoap"
contract="ListsService.ListsSoap" name="ListsSoap" />
</client>
</system.serviceModel>
</configuration>
御時間ありがとうございます。