ホームページ  >  記事  >  バックエンド開発  >  ASP.NET の Remoting サービスを介してファイルをアップロードする例の詳細な説明

ASP.NET の Remoting サービスを介してファイルをアップロードする例の詳細な説明

巴扎黑
巴扎黑オリジナル
2017-05-21 18:34:081359ブラウズ

私は最近、リモーティングを理解するためにリモーティングについて勉強していますが、リモーティングは確かに良いものであることがわかりました。

通常、リモーティングを使用するには 3 つの方法があります。1 つは

最初の方法: パブリック オブジェクトの公開
パブリック オブジェクトはローカルに作成されます
2 つ目: パブリック オブジェクト (SAO) のリモート作成
オブジェクトはクライアント クライアント要求の 3 番目のタイプ: プライベート オブジェクト (CAO) のリモート作成
オブジェクトは HOST 上に作成され、クライアントはサーバー上のオブジェクトを参照します

ディレクトリについてはよくわかりません。これら 3 つのタイプの本質的な違い。これら 3 つの方法では、リモーティングの作成方法も異なります。

最初の方法

ホスト:
ChannelServices.RegisterChannel (new TcpChannel(1500));
cTransfer Trans = new cTransfer();
RemotingServices.Marshal (Trans, "TestService");クライアント:
cTransfer T = (cTransfer ) Activator.GetObject(typeof(cTransfer),
「tcp://host:1500/TestService」);
2 番目の方法
Host:
ChannelServices.RegisterChannel (new) TcpChannel(1500));
RemotingConfiguration.RegisterWellKnownServiceType(typeof (cTransfer) ),
"TestService", WellKnownObjectMode.Singleton);Client:
cTransfer T = (cTransfer) Activator.GetObject(typeof(cTransfer),
3 番目のタイプのメソッド
ホスト:
ChannelServices.RegisterChannel (new TcpChannel(1500));
RemotingConfiguration.RegisterActivatedServiceType(typeof(cTransfer));クライアント:
object[] attr = {new UrlAttribute("tcp://host:1500")} ;
object[] args = {"コンストラクター引数のサンプル"};
cTransfer T = (cTransfer) Activator.CreateInstance(typeof(cTransfer), args, attr);
リモート呼び出し処理を可能にするオブジェクトが必要な場合、このオブジェクトには次のものが必要ですMarshalByRefObject クラスから継承します。

リモート中にファイルを転送するにはどうすればよいですか?基本的な考え方は、クライアントでクライアントのファイルを開き、Byte[] 型を変換してからホスト オブジェクトを呼び出すことです。

クライアントとホスト間で転送されるオブジェクト

[シリアル化可能]
public struct kAction
{
public string filename;
public byte[] context; ファイルを開き、ストリーム バイトを Context
Stream に保存します fileStream =File.Open(this. transFileName.Text,FileMode.Open);
fileStream.Position=0; ,0,Content.Length) ;
ホストがKactionを読み取ったら、それを指定されたフォルダーに保存します
MemoryStream meoeryStream=new MemoryStream(k_Action.context);
FileStream fileStream=new FileStream(@"d:" +k_Action.filename,FileMode.Create);
meoeryStream.WriteTo(fileStream); HOST に送信する準備をするときに、「潜在的に危険なタイプが含まれています」というメッセージが表示されます。
[シリアル化可能]
public struct kAction
{
public string filename;
public byte[] context;
public FineInfo fileInfo;//Here

};
自分の経験を記録してください。時間があるときに整理して、次回完全な記事にしたいと思います。

cnzcのブログ

以上がASP.NET の Remoting サービスを介してファイルをアップロードする例の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。