2009-09-08 9 views

Répondre

2

Pour ce faire, vous devez écrire un code personnalisé. Il existe deux parties du code personnalisé: 1) Le site hôte ASP.Net Silverlight doit transmettre à l'application Silverlight l'adresse de service via un paramètre initial; 2) L'événement de démarrage de l'application doit traiter les paramètres initiaux pour pointer le service vers la bonne adresse.

Partie 1 Code sur le site hôte ASP.Net. Il y a 3 étapes ici:

A) Ajouter une valeur web.config pour contenir le nom du service

<appSettings> 
    <clear/> 
    <add key="MyServiceName" value="MyService.svc"/>   
</appSettings> 

B) Adresse de base de page Web dans en cas de chargement de la page, ajoutez l'adresse de service , et l'enregistrer à un niveau de pages variables

// Page level variable for initial parameters 
    public string InitParams { get; set; } 

    protected void Page_Load(object sender, EventArgs e) 
    { 
     var serviceAddress = 
      ConfigurationManager.AppSettings["MyServiceName"]; 

     var baseAddress = Request.Url.GetLeftPart(UriPartial.Authority); 

     var fullAddress = string.Format("{0}/{1}", baseAddress, serviceAddress); 

     // Pass parameters to SilverLight Application 
     InitParams = string.Format(
      "{0}={1}", 
      "ServiceAddress", 
      fullAddress); 
    } 

C) dans la page qui héberge le contrôle silverlight définir la première à la variable de niveau de la page tel que défini dans B.

<object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%"> 
    <param name="source" value="ClientBin/MySilverlightProject.xap"/> 
    <param name="onError" value="onSilverlightError" /> 
    <param name="background" value="white" /> 
    <param name="minRuntimeVersion" value="3.0.40624.0" /> 
    <param name="autoUpgrade" value="true" /> 
    <param name="InitParams" value="<%=InitParams%>" /> 
    <a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=3.0.40624.0" style="text-decoration:none"> 
     <img src="http://go.microsoft.com/fwlink/?LinkId=108181" alt="Get Microsoft Silverlight" style="border-style:none"/> 
    </a> 
    </object> 

La clé étant ici la

<param name="InitParams" value="<%=InitParams%>" /> 

Partie 2 Crochet App démarrage événement et activer le service à l'adresse dans le fichier App.xaml.cs.

private void Application_Startup(object sender, StartupEventArgs e) 
     { 
      string serviceAddress = e.InitParams["ServiceAddress"]; 
      // INSERT CODE TO INITIALIZE YOUR SERVICE HERE 
     } 
+0

Réponse utile, très utile! –

0

Vous pouvez écrire votre propre code pour retirer le chemin du serveur du service actuel et préfixer au service que vous vouloir utiliser.

Questions connexes