Interface method missing from base class… COM?

Multi tool use
Multi tool use











up vote
1
down vote

favorite












I'm working with Microsoft's EnvDTE Assemblies and I noticed the methods/properties unique to the newest Interfaces aren't included in the base type. For example, the AddFromTemplateEx method.



DTE dte = (DTE) ((IServiceProvider) Host).GetCOMService(typeof(DTE));
Solution4 solution = (Solution4)dte.Solution; //Solution4 is an interface
WriteLine(solution.GetType().FullName);


The above code writes out:



EnvDTE.SolutionClass


Yet the EnvDTE.SolutionClass does not contain an implementation for AddFromTemplateEx(). I'm confused because I can still use the methods from the Solution4 interface, but I don't see how if they aren't implemented in the SolutionClass.



What magic is happening here? The SolutionClass is MarshaledbyRef, its base type is System._ComObject... Is this something to do with the Interface implementations existing on the underlying COM object and not the base type?










share|improve this question




























    up vote
    1
    down vote

    favorite












    I'm working with Microsoft's EnvDTE Assemblies and I noticed the methods/properties unique to the newest Interfaces aren't included in the base type. For example, the AddFromTemplateEx method.



    DTE dte = (DTE) ((IServiceProvider) Host).GetCOMService(typeof(DTE));
    Solution4 solution = (Solution4)dte.Solution; //Solution4 is an interface
    WriteLine(solution.GetType().FullName);


    The above code writes out:



    EnvDTE.SolutionClass


    Yet the EnvDTE.SolutionClass does not contain an implementation for AddFromTemplateEx(). I'm confused because I can still use the methods from the Solution4 interface, but I don't see how if they aren't implemented in the SolutionClass.



    What magic is happening here? The SolutionClass is MarshaledbyRef, its base type is System._ComObject... Is this something to do with the Interface implementations existing on the underlying COM object and not the base type?










    share|improve this question


























      up vote
      1
      down vote

      favorite









      up vote
      1
      down vote

      favorite











      I'm working with Microsoft's EnvDTE Assemblies and I noticed the methods/properties unique to the newest Interfaces aren't included in the base type. For example, the AddFromTemplateEx method.



      DTE dte = (DTE) ((IServiceProvider) Host).GetCOMService(typeof(DTE));
      Solution4 solution = (Solution4)dte.Solution; //Solution4 is an interface
      WriteLine(solution.GetType().FullName);


      The above code writes out:



      EnvDTE.SolutionClass


      Yet the EnvDTE.SolutionClass does not contain an implementation for AddFromTemplateEx(). I'm confused because I can still use the methods from the Solution4 interface, but I don't see how if they aren't implemented in the SolutionClass.



      What magic is happening here? The SolutionClass is MarshaledbyRef, its base type is System._ComObject... Is this something to do with the Interface implementations existing on the underlying COM object and not the base type?










      share|improve this question















      I'm working with Microsoft's EnvDTE Assemblies and I noticed the methods/properties unique to the newest Interfaces aren't included in the base type. For example, the AddFromTemplateEx method.



      DTE dte = (DTE) ((IServiceProvider) Host).GetCOMService(typeof(DTE));
      Solution4 solution = (Solution4)dte.Solution; //Solution4 is an interface
      WriteLine(solution.GetType().FullName);


      The above code writes out:



      EnvDTE.SolutionClass


      Yet the EnvDTE.SolutionClass does not contain an implementation for AddFromTemplateEx(). I'm confused because I can still use the methods from the Solution4 interface, but I don't see how if they aren't implemented in the SolutionClass.



      What magic is happening here? The SolutionClass is MarshaledbyRef, its base type is System._ComObject... Is this something to do with the Interface implementations existing on the underlying COM object and not the base type?







      c# .net visual-studio t4 envdte






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited 36 mins ago

























      asked 1 hour ago









      FakeSaint

      286




      286





























          active

          oldest

          votes











          Your Answer






          StackExchange.ifUsing("editor", function () {
          StackExchange.using("externalEditor", function () {
          StackExchange.using("snippets", function () {
          StackExchange.snippets.init();
          });
          });
          }, "code-snippets");

          StackExchange.ready(function() {
          var channelOptions = {
          tags: "".split(" "),
          id: "1"
          };
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function() {
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled) {
          StackExchange.using("snippets", function() {
          createEditor();
          });
          }
          else {
          createEditor();
          }
          });

          function createEditor() {
          StackExchange.prepareEditor({
          heartbeatType: 'answer',
          convertImagesToLinks: true,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: 10,
          bindNavPrevention: true,
          postfix: "",
          imageUploader: {
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          },
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          });


          }
          });














           

          draft saved


          draft discarded


















          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53235910%2finterface-method-missing-from-base-class-com%23new-answer', 'question_page');
          }
          );

          Post as a guest





































          active

          oldest

          votes













          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes
















           

          draft saved


          draft discarded



















































           


          draft saved


          draft discarded














          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53235910%2finterface-method-missing-from-base-class-com%23new-answer', 'question_page');
          }
          );

          Post as a guest




















































































          e LVT2iHiSZc1lNEC 4LGE6 x CGIsFY upVYVlePyV2eQE,0L
          d6,TWXNbyhfcZGfAFLTKqUHeDypW ihbb4WgUxntJ

          Popular posts from this blog

          横浜市

          Rostock

          Europa