2011-09-09 6 views
6

Dove posso ottenere il valore GUID dell'interfaccia e della classe per la creazione di DLL in C#? Io uso Viusal Studio 2005.Please aiuto.?Dove posso ottenere il valore GUID l'interfaccia e la classe per la creazione di DLL, C#

using System; 
using System.Collections.Generic; 
using System.Text; 
using System.Runtime.InteropServices; 

namespace Wrapper 
{ 
[Guid("")] => Where can i get this??? 
[InterfaceType(ComInterfaceType.InterfaceIsIDispatch)] 
public interface _Service 
{ 
    [DispId(1)] 
    SearchResponse ExecuteSearch(); 
} 

[Guid("")] => Where can i get this??? 
[ClassInterface(ClassInterfaceType.None)] 
[ProgId("Wrapper.Service")] 
public class Ebil : _Service 
{ 
FactService ew; 

    public Ebil() 
    { 
     ew = new FactService(); 

    } 

    public SearchResponse ExecuteSearch(SearchRequest searchRequest) 
    { 
     return ew.ExecuteSearch(searchRequest); 
    } 

}}

+0

Stai chiedendo come generare un guid da posizionare nel contructor di attributo, o come ottenere il guid che è stato inserito lì in fase di runtime? Presumo quest'ultimo. –

+0

@Juan Ayala - no ha bisogno di ottenere alcuni guidi per le sue classi come argomenti per GuidAttribute, che sovrascrive i guidi di tipo automatico. – Matten

risposta

4

Utilizzare un GUID-generatore di vostra scelta, o follow this link.


GuidAttribute Class

fornisce uno System.Guid esplicito quando un GUID automatica è indesiderabile.

Si deve solo essere compatibile con il costruttore di classe Guid:

La stringa passata all'attributo deve essere in un formato che è un argomento di costruttore accettabile per il tipo GUID. Per evitare conflitti con il tipo di Guid, utilizzare il nome lungo GuidAttribute esplicitamente. Solo utilizzare un GUID esplicito quando un tipo deve avere una specifica GUID. Se l'attributo viene omesso, un GUID viene assegnato automaticamente.

3

La proprietà GUID della classe Type. Prova

typeof(_Service).GUID; 
typeof(Ebil).GUID;