私は現在、DBからデータを取得してオブジェクトに渡すアプリケーションを作成していますが、そのオブジェクトを後で他の場所からデータを送信するために使用します。私がテストで抱えている問題は、後で使用するときにデータがオブジェクトに保持されないということです。ヌル値のエラーが発生します。セッションでこれらを保存できることはわかっていますが、オブジェクトを使用して前のジョブで以前に行ったことも知っていますが、情報を保持するために欠けているものを思い出さないでください。ジョブが完了するまでメソッドからメソッドにオブジェクトを渡す必要がありますか?コンソールアプリケーションのオブジェクトの値を保持するC#
ここでの最初のサンプルは、オブジェクトをプリペアする場所を示しています。
public void FtpInitialize()
{
_LogController.LogToFile(ValidateMessage.BeginInitialization);
//Loading FTPClient object with ClientInfo Object data we got from DataBase. FTPClient object is the object that sends the data.
_LogController.FTPTraceLogToFile();
ClientInfo = _RepositoryController.GetClientInfo(ClientInfo);
if (ClientInfo == null)
ClientInfo.ClientDataExists = false;
else
{
FTPClient.Host = ClientInfo.Host;
FTPClient.Port = ClientInfo.Port;
FTPClient.EncryptionMode = FtpEncryptionMode.Explicit;
FTPClient.Credentials = new NetworkCredential(ClientInfo.UserName, ClientInfo.Password);
FTPClient.DataConnectionType = FtpDataConnectionType.EPSV; //according library documentation, auto passive is broken as of 10/20/2016
FTPClient.EnableThreadSafeDataConnections = ClientInfo.EnableThreadSafeConnection;
FTPClient.DataConnectionConnectTimeout = ClientInfo.DataConnectionTimeout;
FTPClient.DataConnectionReadTimeout = ClientInfo.DataReadTimeout;
FTPClient.ConnectTimeout = ClientInfo.ConnectionTimeout;
FTPClient.ReadTimeout = ClientInfo.ReadTimeout;
FTPClient.SocketPollInterval = ClientInfo.SocketPollInterval;
FTPClient.SocketKeepAlive = ClientInfo.KeepSocketAlive;
FTPClient.ValidateCertificate += new FtpSslValidation(OnValidateCertificate);
_LogController.LogToFile(ValidateMessage.ClientDataLoaded);
ClientInfo.ClientDataExists = true;
}
}
その後、私はこの部分を打ったときの下に、それはあなたがあなたの方法でローカル変数を使用しているようにこれが見えます
public bool SendData()
{
short errorCount = 0;
using (FTPClient)
{
if (ClientInfo.ClientDataExists)
{
あなたは何をしようとしているかを示すコードサンプルを追加できますか? – stannius
オブジェクトがDBから作成されていることをどのように知っていますか? –
テストを実行すると、オブジェクトに情報をロードするメソッドが作成されますが、情報はその外部にドロップされます。 – ggiaquin16