Show pageOld revisionsBacklinksBack to top This page is read only. You can view the source, but not change it. Ask your administrator if you think this is wrong. ====== Sample of a Bean ====== ===== Source Code ===== Here is a sample code of a component in C# (save this to a file called Your_CSharpBean_Name.cs) : <code csharp> using WComp.Beans; // Contains the definition of the [Bean] attribute using System.Threading; // For the thread demo purposes namespace Your_Namespace_Name { [Bean] public class Your_CSharpBean_Name : IThreadCreator { private Thread t; // Private attributes of the class private volatile bool run; private volatile int eventValue; public Your_CSharpBean_Name() { // Put here your init instructions t = new Thread(new ThreadStart(ThreadLoopMethod)); run = false; eventValue = 10; } public void Start() { // method starting the thread if (!run) { run = true; t.Start(); } } public void Stop() { // since version 2.4.0.856, run = false; // IThreadCreator defines the Stop() method } // Loop sample public void ThreadLoopMethod() { while(run) { Thread.Sleep(1000); // Check if the output is connected if(Output_Sample != null) // call the connected methods sequentially Output_Sample(eventValue); // and so on... } } // --- Start: Input port sample --- // an input port is a public method (like below) public void Input_Sample(int intParam) { eventValue = intParam; // No return value is expected in WComp: // results are given using events } // --- End: Input port sample --- // --- Start: Output port sample --- public delegate void Output_Sample_Signature(int val); // The delegate defines the signature of the output method public event Output_Sample_Signature Output_Sample; // The output port is the event, named here Output_Sample // --- End: Output port sample --- } } </code> ===== Compilation ===== Here is a sample of the command line compilation: <code> csc.exe /target:library /r:Beans.dll Sample_Component.cs </code> You will find Beans.dll in the SharpWComp distrib. compcode.1294241595.txt.gz Last modified: 2011/01/05 16:33by hourdin