• 0

C# Class library cross reference not allowed?


Question

Hey guys I want to build a DLL that can access all my forms properties and have the forms able to access the dll functions. Microsoft seemed to make

it impossible to do this. Any ideas? I can't add a reference of each other in both projects b/c of some error about how it's create circular speculation...that's what I want...both projects to be able to access both data.

5 answers to this question

Recommended Posts

  • 0

Circular referencing projects can be difficult because of the semenatics behind trying to compile them (which one would you compile first?), and load them. If the libraries will both be dependant on each other, would it not be easier to just compile them into the same project?

One way to get round them is to use an Event based mechanism, but it wouldn't be very pretty:

Project A declares Event 1

Project B creates a handler for Event 1

Project A fires Event 1

Project B catches Event 1

Only Project B is dependant on Project A

Create a custom event handler in Project A, which Project B implements but Project A fires. Make sense?

  • 0

eh...not really. B/c how would I get project b to create a handle out of anything from project a if I can't include both?

I would love to put them in the same project but VS 2005 doesn't allow you to add a .dll file project into an existing Windows Form project.

Is there a link maybe to explain more of what you're talking about?

  • 0

Visual Studio 2005 allows both kinds of projects to be in the same solution. The way antaris described it the 2 projects won't need to include each other. Only Project B would need to include Project A.

  • 0

Honestly, this doesn't sound like a good design. You can work around this, though.

My first thought, and I didn't get much sleep so forgive if I'm not clear, is to create a base class or interface that your forms implement inside another DLL. This base should include all the properties you want to expose to the primary DLL. Have your primary DLL reference this abstract type instead of the concrete type. Your Win form project should reference this, too, of course. Now your primary dll can be reference by your Win form app and your win form app can pass in the base type to your primary dll. You've created a triangular reference instead of a circular one. ;)

You should really rethink your design, though. If that much data and functionality really needs to be shared between 2 classes, it should be one class or a hierarchy.

  • 0

Ah, the Seperate Interface pattern, never thought of that.

  Quote
You should really rethink your design, though. If that much data and functionality really needs to be shared between 2 classes, it should be one class or a hierarchy
Yeah, thats what I meant when I said
  Quote
If the libraries will both be dependant on each other, would it not be easier to just compile them into the same project?

Also,

  Quote
I would love to put them in the same project but VS 2005 doesn't allow you to add a .dll file project into an existing Windows Form project

When you click File..Open or File..New, the dialog gives you the option of either creating a new solution, OR, adding the project to the existing solution.

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Posts

    • Sayan Sen, do you think one day an image of the Windows Vista desktop or the wallpaper could be used in the primary image of an article?
    • Big fan of EAC Here's a good non-default naming scheme I found on the web (can't take credit) File Name Scheme - %albumartist%\%year% - %albumtitle%\%tracknr2% %title% Various Artists Naming Scheme - Various Artists\%year% - %albumtitle%\%tracknr2% %title%
    • Hello, Probably the simplest way of doing this would be to add a video card to your computer.   Regards, Aryeh Goretsky  
    • Check out Lisa Melton's GitHub transcoding scripts https://github.com/lisamelton/video_transcoding
    • ChatGPT's Advanced Voice Mode gets a significant update to make it sound more natural by Pradeep Viswanathan OpenAI introduced Advanced Voice Mode last year alongside the launch of GPT-4o. This feature uses natively multimodal models, such as GPT-4o, and can respond to audio inputs in as little as 232 milliseconds, with an average of 320 milliseconds, similar to human response time in a typical conversation. It can also generate audio that feels more natural, pick up on non-verbal cues, such as the speed you’re talking, and respond with emotion. Early this year, OpenAI released a minor update to Advanced Voice Mode that reduced interruptions and improved accents. Today, OpenAI has launched a significant upgrade to Advanced Voice Mode, making it sound even more natural and human-like. Responses now feature subtler intonation, realistic cadence—including pauses and emphasis—and more accurate expressiveness for certain emotions such as empathy and sarcasm. This update also introduces support for translation. ChatGPT users can now use Advanced Voice Mode to translate between languages. Simply ask ChatGPT to start translating, and it will continue translating throughout the conversation until instructed to stop. This feature effectively replaces the need for dedicated voice translation apps. For now, the updated Advanced Voice Mode is available only to ChatGPT paid users. OpenAI also noted that there are some known limitations with this latest update, outlined below. This update may occasionally result in minor reductions in audio quality, such as unexpected variations in tone and pitch—especially noticeable with certain voice options. OpenAI expects to improve audio consistency over time. Rare hallucinations in Voice Mode still persist, sometimes producing unintended sounds resembling ads, gibberish, or background music. While some minor limitations remain, the steady stream of improvements points to a future where the line between human and AI conversation becomes increasingly indistinguishable.
  • Recent Achievements

    • Week One Done
      maimutza earned a badge
      Week One Done
    • Week One Done
      abortretryfail earned a badge
      Week One Done
    • First Post
      Mr bot earned a badge
      First Post
    • First Post
      Bkl211 earned a badge
      First Post
    • One Year In
      Mido gaber earned a badge
      One Year In
  • Popular Contributors

    1. 1
      +primortal
      486
    2. 2
      +FloatingFatMan
      264
    3. 3
      snowy owl
      242
    4. 4
      ATLien_0
      223
    5. 5
      Edouard
      191
  • Tell a friend

    Love Neowin? Tell a friend!