---
title: "Göra class-modul otillgänglig utanför projektet?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/66430-göra-class-modul-otillgänglig-utanför-projektet"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "Erik Juhlin"
published: "2003-01-28T14:17:22.000Z"
updated: "2003-01-28T17:12:00.000Z"
replies: 10
views: 326
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/dotnet/66430-göra-class-modul-otillgänglig-utanför-projektet"
---

# Göra class-modul otillgänglig utanför projektet?

## #1 — Erik Juhlin, 2003-01-28T14:17Z

Går det att på något sätt göra så att en class-modul endast går att komma åt från klasser i projektet och inte utanför?

Permalänk: https://www.webforum.nu/p/66430

## #2 — niko, 2003-01-28T14:28Z

Ja. Du sätter *Instancing* till *Private*.

Permalänk: https://www.webforum.nu/p/932258

## #3 — Erik Juhlin, 2003-01-28T14:36Z

Men då försvinner transaction alternativen. :(

Permalänk: https://www.webforum.nu/p/932271

## #4 — niko, 2003-01-28T14:47Z

Då återstår: *PublicNotCreatable*. 

<http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vbcon98/html/vbconinstancingforolecomponentclasses.asp>

Permalänk: https://www.webforum.nu/p/932288

## #5 — Erik Juhlin, 2003-01-28T14:57Z

Använder jag PublicNotCreatable så kan jag inte komma åt klassen från andra klasser i projektet. :(

Permalänk: https://www.webforum.nu/p/932299

## #6 — Vide, 2003-01-28T15:30Z

> PublicNotCreatable. Other applications can use objects of this class only if your component creates the objects first. Other applications cannot use the CreateObject function or the New operator to create objects from the class

Borde ju fungera!?

Permalänk: https://www.webforum.nu/p/932332

## #7 — niko, 2003-01-28T15:33Z

> Använder jag PublicNotCreatable så kan jag inte komma åt klassen från andra klasser i projektet.

Nu hänger jag inte riktigt med. Blandar du inte ihop "projekt" och "projektgrupp"?

Oavsett om du använder "Private" eller "PublicNotCreatable" så kan du alltid komma åt klassen från andra klasser i samma komponent (projekt).

Private-\> Du kan bara skapa instanser av klassen från andra klasser i samma komponent.

PublicNotCreatable-\>Du kan bara skapa instanser av klassen från andra klasser i samma komponent. MEN du kan räcka över en instans av klassen till extern kod. Den externa koden kan däremot inte anropa "New" eller "CreateObject" på egen hand.

Permalänk: https://www.webforum.nu/p/932335

## #8 — Erik Juhlin, 2003-01-28T15:41Z

Det är i samma komponent. :l

Permalänk: https://www.webforum.nu/p/932340

## #9 — Erik Juhlin, 2003-01-28T16:04Z

Kan det ha med att vi använder denna funktion istället för CreateObject?

```
Public Function CtxCreateObject(ByVal sProgID As String) As Object
    Dim objContext As ObjectContext
    Set objContext = GetObjectContext
    
    If Not (objContext Is Nothing) Then
        'Create an instance of the component
        Set CtxCreateObject = objContext.CreateInstance(sProgID)
        Set objContext = Nothing
    Else
        Set CtxCreateObject = CreateObject(sProgID)
    End If
End Function
```

Permalänk: https://www.webforum.nu/p/932365

## #10 — niko, 2003-01-28T16:25Z

> Kan det ha med att vi använder denna funktion istället för CreateObject?

Ja. Det är nog till och med så illa som att du måste använda "New" för klasser som är PublicnotCreatable eller Private. Och att använda "New" på komponenter som kör i MTS:en är kanske inte alltid så lyckat? Så jag har nog ingen lösning på problemet på rak arm. Tyvärr.

Permalänk: https://www.webforum.nu/p/932385

## #11 — Erik Juhlin, 2003-01-28T17:12Z

Urk!
Skiter i det då. Inget hemligt där.

Mer för att inte någon klantig praktikant eller liknande ska få för sig att gå rakt på de klasserna. :)

Permalänk: https://www.webforum.nu/p/932424

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/66430-göra-class-modul-otillgänglig-utanför-projektet
