Silverlight和ASP.NET页面的相互传参的两种常用方式:Cookie和QueryString。
一个名为SLConnectASP.NET的Silverlight应用程序和在SLConnectASP.NET.web项目中添加的Index.aspx的页面。SLConnectASP.NET的Silverlight应用程序:
 public partial class MainPage : UserControl
    {
        public MainPage()
        {
            InitializeComponent();
            ShowQueryString();
            ShowCookie();
        }
#region QueryString传值
//QueryString步骤一
private void button2_Click(object sender, RoutedEventArgs e)
{
    //传递参数给Asp.net页面
    HtmlPage.Window.Eval("location='" +
        Application.Current.Host.Source.AbsoluteUri.Replace(
        Application.Current.Host.Source.AbsolutePath, "") + "/index.aspx?id=203';");
}
//QueryString步骤四
private void ShowQueryString()
{
    //接收到ASP.NET页面传送过来的QueryString值
    IDictionary<String, String> paras = HtmlPage.Document.QueryString;
    if (paras.ContainsKey("aspxid"))
    {
        this.label1.Content = "获取到ASP.NET传值:" + paras["aspxid"];
    }
}
#endregion#region Cookie传值
//Cookie步骤一
private void button1_Click(object sender, RoutedEventArgs e)
{    //编写一个键为FirCookieKey,值为FirCookieValue的Cookie
    string oldCookie = HtmlPage.Document.GetProperty("cookie") as String;
    DateTime expiration = DateTime.UtcNow + TimeSpan.FromDays(2000);
    string cookie = String.Format("{0}={1};expires={2}", "FirCookieKey", 
        "FirCookieValue", expiration.ToString("R"));
    HtmlPage.Document.SetProperty("cookie", cookie);
    //跳转界面
    HtmlPage.Window.Eval("location='" + 
        Application.Current.Host.Source.AbsoluteUri.Replace(
        Application.Current.Host.Source.AbsolutePath, "") + "/index.aspx';");}
//Cookie步骤四
private void ShowCookie()
{
    //显示当前键为FirCookieKey的Cookie值
    String[] cookies = HtmlPage.Document.Cookies.Split(';');
    foreach (String cookie1 in cookies)
    {
        String[] keyValues = cookie1.Split('=');
        if (keyValues[0] == "FirCookieKey")
        {
            this.textBox2.Content = "Cookie的Key值是:" + keyValues[0];
            this.textBox1.Content = "Cookie的Value值是:" + keyValues[1];        }
    };
}
#endregion
    }SLConnectASP.NET.web项目中添加的Index.aspx的页面:
public partial class Index : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            BindQueryString();
            BindCookie();
        }#region ASP.NET端操作Silverlight传输过来的QueryString值
private void BindQueryString()
{
    //ASP.NET端获取到Silverlight传输过来的QueryString值
    if (Request.QueryString.Count > 0)
    {
        this.Label1.Text = "获取到的Silverlight客户端QueryString值是:"
            + Request.QueryString["id"].ToString();
    }
}protected void Button1_Click(object sender, EventArgs e)
{
    //回传QueryString值给Silverlight客户端
    Response.Redirect("./SLConnectASP.NETTestPage.aspx?aspxid=109");
}
#endregion#region ASP.NET端获取到操作Cookie值
//Cookie操作二
private void BindCookie()
{
    try
    {
        // ASP.NET端获取到Silverlight传输过来的Cookie值
        HttpCookie cookie = Request.Cookies["FirCookieKey"];        this.Label2.Text = "获取到的Silverlight客户端Cookie值:" + cookie.Value;
    }
    catch (Exception c)
    { }
}
//Cookie操作三
protected void Button2_Click(object sender, EventArgs e)
{
    //回传重新设置Cookie值然后传输给Silverlight
    HttpCookie cookie = Request.Cookies["FirCookieKey"];
    cookie.Value = "NewCookieValue";
    HttpContext.Current.Response.Cookies.Add(cookie);
    Response.Redirect("./SLConnectASP.NETTestPage.aspx");
}
#endregion
    }现在可不可以定义接口来规范这些方法,通过实现接口来实现这些功能???