MEF: Cómo referirse a una interfaz personalizada como exportación / importación sin crear dependencias del proyecto -- # campo con mef camp Relacionados El problema

MEF: How to refer to a custom interface as Export/Import without creating project dependencies


2
vote

problema

Español

Soy nuevo en MEF. En la ejemplo de msdn , tanto la aplicación como la DLL están dentro de la La misma solución, por lo que pueden referirse comúnmente a una interfaz personalizada (IOPERATION) como exportación e importación (que se define en el ensamblaje de la aplicación).

  [Export(typeof(SimpleCalculator3.IOperation))] [ExportMetadata("Symbol", '%')] public class Mod : SimpleCalculator3.IOperation {     public int Operate(int left, int right)     {         return left % right;     } }   

Sin embargo, quiero poder crear complementos sin compartir la fuente del proyecto principal / que requiere vincularse con el ensamblaje. Pensé que sería como Pinevokes, donde, si acababa de definir las interfaces duplicadas e idénticas a cada lado, podría funcionar que coincidían, pero parece que no.

¿Cómo puedo referirme a una interfaz en el lado de exportación en un proyecto independiente, si la definición de la interfaz de importación está dentro de la aplicación?

La única solución que puedo pensar es crear una DLL común con solo una definición de las plantillas de interfaz de exportación / importación en las que ambas se pueden referir a continuación.

Original en ingles

I'm new to MEF. In the MSDN example, both the application and the DLL are within the same Solution, so they can commonly refer to a custom interface (IOperation) as both export and import (which is defined in the application's assembly).

[Export(typeof(SimpleCalculator3.IOperation))] [ExportMetadata("Symbol", '%')] public class Mod : SimpleCalculator3.IOperation {     public int Operate(int left, int right)     {         return left % right;     } } 

However I want to be able to create plugins without sharing the main project's source / requiring to link to the assembly. I thought it would be like Pinvokes where if I just defined duplicate and identical interfaces on either side it could work out that they matched, but it seems not.

How can I refer to an interface on the Export side in a standalone project, if the definition of the Import interface is within the application?

The only workaround I can think of is to create a common DLL holding only a definition of the export/import interface templates which both can then refer to?

     

Lista de respuestas


Relacionados problema

4  MEF y pruebas de la unidad con Nunit  ( Mef and unit testing with nunit ) 
Hace unas semanas salté en el carro del MEF (ComponentModel), y ahora lo estoy usando para muchos de mis complementos y también las bibliotecas compartidas. E...

0  ¿Cómo administrar el descubrimiento y la composición como 2 inquietudes separadas?  ( How to manage discovery and composition as 2 separate concerns ) 
He establecido un catálogo de ensamblaje: private CompositionContainer GetContainer() { // initialize directory info ExtensionDirectory = new D...

6  Creación de un simple texto: manipulación de la extensión Visual Studio 2010  ( Creating a simple text manipulating visual studio 2010 extension ) 
He estado deseando crear una simple extensión de manipulación de texto para Visual Studio por un tiempo, y ahora finalmente he encontrado un tiempo para mirar...

3  Cómo cargar DLLs del directorio usando MEF (marco de extensibilidad administrado)  ( How to load dlls from directory using mef managed extensibility framework ) 
Actualmente estoy trabajando con MEF y enfrentando algunos problemas Lo que quiero es cargar DLLs del directorio. Primero escaneo el directorio y guardo d...

7  Programación orientada a los compuestos (COP), .NET 4.0, MEF y el repositorio de Oslo  ( Composite oriented programming cop net 4 0 mef and the oslo repository ) 
Parece que ha habido algunos intereses durante el año pasado alrededor de la COP dentro de la comunidad de .NET (ALA qi4j ). Algunas personas han enrollado ...

0  MEF e IOBSERVISS  ( Mef and iobservables ) 
Tengo un Singleton IOBServable que devuelve los resultados de una consulta LINQ. Tengo otra clase que escucha el iObservable para estructurar un mensaje. Esa ...

2  C # MEF Set Propiedad / Inyección de la propiedad  ( C sharp mef set property property injection ) 
¿Hay alguna forma de hacerlo funcionar con el marco de extensibilidad de Microsoft (MEF) vamos a decir que tengo interfaz public interface IApplicationSe...

1  Exponer la versión de MEF cargado "Plugin"  ( Expose version of mef loaded plugin ) 
disculpas por el título, me quedé atrapado por las palabras Estoy sumergiendo mis dedos en el estanque de MEF. Hasta aquí todo bien. Tengo una aplicación ...

0  Comunicación entre programa principal y subcódulos  ( Communication between main program and sub modules ) 
Estoy planeando usar el marco MEF para ser extensible. Mi programa 3 Sub Módulos / DLLs como se indica a continuación Messenger Module: para enviar / recibi...

2  Usando el MEF para que el complemento anular la interfaz central  ( Using the mef to have plugin override core interface ) 
Estamos investigando usando MEF para una solución de complemento / IOC. El concepto es que el proyecto principal es un ejemplo de trabajo. El complemento re...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos