IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Ambiguité entre la méthode et l'élément etc


Sujet :

C#

  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur C#
    Inscrit en
    Avril 2011
    Messages
    348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur C#
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 348
    Par défaut Ambiguité entre la méthode et l'élément etc
    Bonjour,

    Je suis entrain de mettre en place un envoie d'email dans une application à l'aide de Outlook.

    Voilà comment j'ai procédé :

    J'ai ajouté la référence suivante au projet : Microsoft.Office.Interop.Outlook

    j'ai ajouter dans mon form :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    using Outlook = Microsoft.Office.Interop.Outlook;
    et j'ai créer un simple message de la manière suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Outlook.Application myOutlook = new Outlook.Application();
     
    Outlook.MailItem mail = (Outlook.MailItem)(myOutlook.CreateItem(OlItemType.olMailItem));
    mail.Subject = "sujet";
    mail.Body = "corp";
    mail.To = "test@test.be";
     
    mail.Send();
    Et il me met un avertissement sur la méthode Send()

    Avertissement 1 Ambiguïté entre la méthode 'Microsoft.Office.Interop.Outlook._MailItem.Send()' et l'élément 'Microsoft.Office.Interop.Outlook.ItemEvents_10_Event.Send' qui n'est pas une méthode. Utilisation du groupe de méthodes. \\MyServer\new data\home\f.gerard\mes documents\visual studio 2010\Projects\test\test\Form1.cs 30 18 test
    (Je n'ai pas ajouter 2 fois une référence vers outlook dans le projet)

    Auriez-vous une idée sur ce que je dois faire ?

  2. #2
    Membre Expert Avatar de Er3van
    Homme Profil pro
    Architecte Logiciel
    Inscrit en
    Avril 2008
    Messages
    1 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte Logiciel
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2008
    Messages : 1 430
    Par défaut
    Il suffit peut-être que tu précises dans ton cast que tu convertis en Outlook.MailItem

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur C#
    Inscrit en
    Avril 2011
    Messages
    348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur C#
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 348
    Par défaut
    C'est vrai que j'aurais du le préciser

    Mais ce n'est malheureusement pas ca, j'ai toujours cet avertissement

  4. #4
    Membre Expert Avatar de Er3van
    Homme Profil pro
    Architecte Logiciel
    Inscrit en
    Avril 2008
    Messages
    1 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte Logiciel
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2008
    Messages : 1 430
    Par défaut
    Et avec ((Microsoft.Office.Interop.Outlook.MailItem)mail).Send(); ?

    EDIT : Les parenthèses étaient mal mises...

  5. #5
    Membre éclairé
    Homme Profil pro
    Développeur C#
    Inscrit en
    Avril 2011
    Messages
    348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur C#
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 348
    Par défaut
    Bonne idée mais ca ne fonctionne pas non plus :



    Une autre ? ^^
    Je séche dessus depuis un petit moment déjà et je tombe à court


    EDIT : J'ai aussi 3 erreurs avec les parenthèses.

  6. #6
    Membre éclairé
    Homme Profil pro
    Développeur C#
    Inscrit en
    Avril 2011
    Messages
    348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur C#
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 348
    Par défaut
    J'ai eu une réponse sur MSDN :

    Il faut caster en

    _MailItem
    et NON

    MailItem
    Merci pour ton aide Er3van

    Voiçi le lien vers le topic :

    http://social.msdn.microsoft.com/For...a-d57b584f6f8e



    EDIT : malheureusement, j'ai été trop vite, je n'as plus le problème pour le méthode send() mais j'ai de nouveau un problème d'ambiguité sur :

    mail.GetInspector.Activate();

    Une idée ? :p

  7. #7
    Membre éclairé
    Homme Profil pro
    Développeur C#
    Inscrit en
    Avril 2011
    Messages
    348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur C#
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 348
    Par défaut
    J'ai tenté ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ((Outlook._Inspector)mail).Activate();

    Mais j'ai une erreur :

    Impossible d'effectuer un cast d'un objet COM de type 'System.__ComObject' en type d'interface 'Microsoft.Office.Interop.Outlook._Inspector'. Cette opération a échoué, car l'appel QueryInterface sur le composant COM pour l'interface avec l'IID '{00063005-0000-0000-C000-000000000046}' a échoué en raison de l'erreur suivante : Cette interface n'est pas prise en charge (Exception de HRESULT : 0x80004002 (E_NOINTERFACE)).
    à Deominateur.Formulaire.ongCommunications.tsb_nouveau_Click(Object sender, EventArgs e) dans C:\Projet_VS_2010\ContMaint\Deominateur\Formulaire\ongCommunications.cs:ligne 196}

  8. #8
    Membre éclairé
    Homme Profil pro
    Développeur C#
    Inscrit en
    Avril 2011
    Messages
    348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur C#
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 348
    Par défaut
    Le but de GetInspector dans mon cas était uniquement de faire en sorte que dans mon email, la signature s'affiche, que je puisse la récupérer pour ensuite l'afficher correctement avec mon message, voilà comment j'ai procédé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Outlook._Inspector recupSignature = (Outlook._Inspector)mail.GetInspector;
    recupSignature.Activate();
    String body = mail.HTMLBody;
    mail.HTMLBody = "Je test\n\n\n" + body;
    Et ca marche au poil.

    recupSignature
    Ne sert au final à rien d'autre
    Si vous avez d'autres suggestions, je suis preneur :-)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. concaténer une variable entre des méthodes.
    Par M. sébastien dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 01/06/2007, 21h42
  2. Différences entre les méthodes fread et wavread
    Par sone47 dans le forum MATLAB
    Réponses: 1
    Dernier message: 07/03/2007, 16h46
  3. Ambiguité entre CEvent MFC et CEvent ATL
    Par Gabrielly dans le forum MFC
    Réponses: 6
    Dernier message: 21/12/2006, 21h09
  4. Réponses: 2
    Dernier message: 30/08/2006, 19h44
  5. Comparatif entre 2 méthodes d'écriture de code PHP
    Par Chengj dans le forum Langage
    Réponses: 2
    Dernier message: 24/11/2005, 22h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo