2008-11-11 6 views
1

Je veux mettre en place un contrôle personnalisé ASP.NET telle qu'elle a un nom personnalisé, en particulier, avec un trait d'union à l'intérieur, il pourrait ressembler à ceci dans le balisage:Comment créer un contrôle personnalisé ASP.NET avec un tiret dans le nom?

<rp:do-something runat="server" id="doSomething1" />

Je ne me dérange pas si cette syntaxe nécessite la configuration d'un mappage de balise dans web.config ou quelque chose dans ce sens, mais le tagMapping element ne correspond pas exactement à ce que je voudrais faire.

Répondre

1

Je ne pense pas que ce soit possible en raison des restrictions sur les noms de classe. Je ne crois pas que vous pouvez vous référer à une classe de contrôle dans le balisage sans y faire référence par son nom

Y a-t-il une raison particulière pour laquelle vous avez besoin du trait d'union?

1

John, vous avez raison. Je l'ai fait quelques recherches dans le réflecteur et il semble que cela ne se soit pas:

Type ITagNameToTypeMapper.GetControlType(string tagName, IDictionary attribs) 
{ 
    string str; 
    string str2 = this._nsRegisterEntry.Namespace; 
    if (string.IsNullOrEmpty(str2)) 
    { 
     str = tagName; 
    } 
    else 
    { 
     str = str2 + "." + tagName; 
    } 
    if (this._assembly != null) 
    { 
     Type type = null; 
     try 
     { 
      type = this._assembly.GetType(str, true, true); 
     } 

Mis en œuvre dans System.Web.UI.NamespaceTagNameToTypeMapper, System.Web.

@Jonathan: J'ai une raison commerciale spécifique de vouloir le faire de cette façon. Tant pis.

Questions connexes