数日前、私はC# でこのライブラリを使い始めました。エラーが発生したときにカスタム クラスを送信しようとしていました。これが私のコードです。
Main.cs
private void button3_Click(object sender, EventArgs e)
{
listBox1.Items.Add("Sending message to server saying '" + textBox2.Text + "'");
TCPConnection connection = TCPConnection.GetConnection(new ConnectionInfo(serverIP, serverPort));
SendReceiveOptions options = connection.ConnectionDefaultSendReceiveOptions.Clone() as SendReceiveOptions;
options.DataProcessors.Add(DPSManager.GetDataProcessor<RijndaelPSKEncrypter>());
RijndaelPSKEncrypter.AddPasswordToOptions(options.Options, "Your strong PSK");
if (connection.SendReceiveObject<string>("Payload", "Ack", 1000, new PayloadFile(textBox2.Text)) != null) // <-- Giving an exception here, "Type is not expected, and no contract can be inferred: TCP_Client.PayloadFile"
{
listBox1.Items.Add("Done");
}
}
PayloadFile.cs
public class PayloadFile
{
public string FileName;
public string FileLocation;
public FileStream FileContent;
public PayloadFile(string FileToLoad)
{
if (!File.Exists(FileToLoad))
{
throw new FileNotFoundException();
}
FileInfo PayloadInfo = new FileInfo(FileToLoad);
FileName = PayloadInfo.Name;
FileLocation = PayloadInfo.DirectoryName;
FileContent = File.OpenRead(FileToLoad);
}
}
メッセージとともにスローされる例外:
Type is not expected, and no contract can be inferred: TCP_Client.PayloadFile
クラスが間違って書かれたのではないかと疑っていますか?