|
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Scaredfinger.JSShell;
using System.IO;
using System.ComponentModel;
using System.Reflection;
namespace SampleShell
{
public class SampleShell : Shell
{
public TextWriter Output
{
get;
set;
}
public SampleShell()
: this(Console.Out)
{
}
public SampleShell(TextWriter output)
{
Output = output;
}
[ShellOperation]
[Description("Shows this help screen")]
public void Help()
{
foreach (var method in GetType().GetMethods().Where(x => x.GetCustomAttributes(typeof(ShellOperationAttribute), false).Any()))
{
var attr = method.GetCustomAttributes(typeof(DescriptionAttribute), false).FirstOrDefault() as DescriptionAttribute;
var parameters = string.Join(",",
(
from p in method.GetParameters()
select string.Format("{0} {1}", p.ParameterType.Name, p.Name)
).ToArray()
) ;
var text = string.Format("\t{0} {1}({2}):\t{3}", method.ReturnType.Name, method.Name, parameters,
attr == null? "" : attr.Description);
Print(text);
}
}
[ShellOperation]
[Description("Prints a text")]
public void Print(string text)
{
Output.WriteLine(text);
}
[ShellOperation]
[Description("Closes this shell")]
public void Exit()
{
CloseShell();
}
}
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
I Received a Bachelor's Degree in Computer Science at the Mathematics and Computer Science Faculty, University of Havana, Cuba.
I mainly work in web applications using C# and some Javascript. Some very few times do some Java.