I get this error on line "Channel.GetMessage(new Message())" In this function:
public override void Execute()
{
try
{
Behaviours["OntRead"].Do();
Channel.GetMessage(new Message());
}
catch
{
Console.WriteLine("Ooops");
}
It belongs to instance of:
public abstract class AbstractAgent
{
protected String ID;
protected BasicHttpBinding Way;
protected EndpointAddress EndPoint;
protected ChannelFactory<IContract> Links;
protected IContract Channel;
public Dictionary<String, AbstractBehaviour> PoolOfBehaviours;
public Dictionary<String, AbstractBehaviour> Behaviours { get { return PoolOfBehaviours; } }
public Uri Adress { get; set; } // где ожидать входящие сообщения
public AbstractAgent(String ID, Uri Adress)
{
this.ID = ID;
PoolOfBehaviours = new Dictionary<string, AbstractBehaviour>();
this.Adress = Adress;
EndPoint = new EndpointAddress(Adress);
Way = new BasicHttpBinding();
Links = new ChannelFactory<IContract>(Way, EndPoint);
Channel = Links.CreateChannel();
}
public abstract void Execute();
}
I call this function in:
public void Do()
{
Uri Adress = new Uri("http://localhost/MessageServiceCenter/IContract.cs");
Post P = new Post(Adress);
AbstractAgent A = CreateAgent("OntologyF", "OntReader");
A.AddBehaviour("OntRead", new OntologyLoadBehavior("OntRead", "http://www.semanticweb.org/serega/ontologies/2015/6/SpaceWorld", A));
P.Open();
A.Execute();
P.Close();
}
Post is:
class Post
{
public Uri Adress { get; set; }
private BasicHttpBinding Way;
private Type Contract;
private ServiceHost Host;
public Post(Uri Adress)
{
this.Adress = Adress;
Host = new ServiceHost(typeof(MessageService), Adress);
Way = new BasicHttpBinding();
Contract = typeof(IContract);
Host.AddServiceEndpoint(Contract, Way, "MessageService");
}
public void Open()
{
Host.Open();
}
public void Close()
{
Host.Close();
}
}
}
MessageService:
class MessageService : IContract
{
public void GetMessage(Message Input)
{
Input.GOTYA();
}
public void SendMessage()
{
}
}
Message:
public class Message
{
public void GOTYA()
{
Console.WriteLine("GOTYA");
}
}
IContract:
[ServiceContract]
public interface IContract
{
[OperationContract]
void GetMessage(Message Input);
[OperationContract]
void SendMessage();
}