Click here to Skip to main content
15,887,027 members
Home / Discussions / C#
   

C#

 
AnswerRe: How do you programatically open a file in c# to append? Pin
DaveyM6917-Nov-12 1:35
professionalDaveyM6917-Nov-12 1:35 
AnswerRe: How do you programatically open a file in c# to append? Pin
Eddy Vluggen17-Nov-12 9:32
professionalEddy Vluggen17-Nov-12 9:32 
QuestionC# noob: Making Textbox entry a percentage, and Help with loops Pin
maul5916-Nov-12 18:46
maul5916-Nov-12 18:46 
AnswerRe: C# noob: Making Textbox entry a percentage, and Help with loops Pin
Richard MacCutchan16-Nov-12 20:43
mveRichard MacCutchan16-Nov-12 20:43 
AnswerRe: C# noob: Making Textbox entry a percentage, and Help with loops Pin
OriginalGriff16-Nov-12 21:40
mveOriginalGriff16-Nov-12 21:40 
GeneralRe: C# noob: Making Textbox entry a percentage, and Help with loops Pin
maul5916-Nov-12 22:20
maul5916-Nov-12 22:20 
GeneralRe: C# noob: Making Textbox entry a percentage, and Help with loops Pin
OriginalGriff16-Nov-12 22:26
mveOriginalGriff16-Nov-12 22:26 
QuestionInterface issue when implementing Factory pattern Pin
MichCl16-Nov-12 8:36
MichCl16-Nov-12 8:36 
I'm having trouble with the interface for the Factory Design Pattern. I've looked at
http://dotnet.dzone.com/articles/design-patterns-c-factory,
which follows my design very closely since it was the first good example I found a while back.
I took a look at
http://stackoverflow.com/questions/27294/abstract-factory-design-pattern,
but my design is very different.

Right now, this is what it looks like. I have included a lot of code because I have a feeling the problem has to do with the visual studio project breakdown. It used to be more simple, with my CR5, interface, factory, CB_spec, El, etc in the same visual studio project. I had to move things around as shown per design discussions and the need for CR6, etc to be separate. Now I'm getting some compilation problems I'm not sure what to do with. See ** below for the first and worst. My question is regarding the compilation issue below.

My iCR Visual Studio project which is the interface:

C#
public interface iCR
        {
            int CB_IO_Init(int slaveIndex);
            int WritePortReady();
            int WritePortBusy();
            void initCRData(byte[] writeBuffer, byte[] statusBuffer, int SlaveIndex, USB_Comm.CB cb, int cr_Type);
            int ProcessTWriting(ref Byte[] writeDat, ref Byte[] statusDat, ref Byte[] dataDumpWriteCheck);
            void Failure(String message);
            void Success(String message);

        }


My CR_Factory Visual Studio project

C#
namespace CR_Factory
    {

    public class Cr
    {
         
    }  

    public class CRFactory
    {
        public enum CRType
        {
            CR0,
            CR1,
            CR3,
            CR4,
            CR5,
            CR6
        }

        public CRFactory()
        {
        }

        public iCR GetCR(CRType type) 
        {
            iCR cr = null;
            switch (type)
            {
                case CRType.CR5:
                    cr = new CR5(); 
                    break;
                case CRType.CR6:
                    //not done yet
                    break;
                default:
                    throw new ArgumentException(string.Format("A CR of type {0} cannot be found", Enum.GetName(typeof(CRType), type)));
            }
            return cr;
        }

        public CRType DetermineCR_Type(int type)
        {
            switch (type)
            {
                case 0:
                    return CRType.CR0;
                //break;
                case 1:
                    return CRType.CR1;
                case 3:
                    return CRType.CR3;
                case 4:
                    return CRType.CR4;
                case 5:
                    return CRType.CR5;
                case 6:
                    return CRType.CR6;
                default:
                    throw new ArgumentException(string.Format("A type of type {0} cannot be found", type));

            }
        }

        }
    }


My CR5 Visual Studio Project has a lot of classes in it, but right now I’m just showing you the part referred to in the factory. Later I’ll create a CR6 VS project, etc. As you can see, the compiler doesn't think I implemented initCRData but it's right there, and curly brackets are fine.

C#
public class CR5 : iCR **compile error CR5_new.CR5 does not implement interface member iCR.initCRData(byte[],byte[],int,USB_Comm.CB,int)
    {        
        CB_703 cb_specific = null;
		
        //constructor
        public CR5()
        {
            cb_specific = new CB_703(SlaveIndex);
        }

        public void initCRData(byte[] writeBuffer, byte[] statusBuffer, int slaveIndex, USB_Comm.CB cb_specificInstance, int crType)
        {...
        }

        public int CB_IO_Init(int SlaveIndex)
        {
            int result = -534;
            result = cb_specific.IO_Init(SlaveIndex);
            return result;
        }
    .
    .
    .
    }


I have another Visual Studio Project (actually several) that instantiates the factory and gets the appropriate type. We’ll call it El:

C#
namespace CrWr
    {
    
    public partial class PControl : UserControl
    {
        //setup 
	
        //constructor
        public PControl()
        {
            
        }

        /// <summary>
        /// Get the P Control for chosen dll
        /// </summary>
        public Control GetPControl(USB_Comm.CB cbInstance, string dllSelected, THandlerApplication.Temp.TEMP[] temp, string dll, SC.SC.S_C c0)
        {
            cb = cbInstance;
            createControls();
            itsDll = dll;
            tArr = temp;
            cert = c0;
      
            CR_Factory.CRFactory factory = new CR_Factory.CRFactory();
            CRFactory.CRType type = factory.DetermineCR_Type(cr_Type);
            try
            {
                cr = factory.GetCR(type);             }
            catch (Exception ex)
            {
                Console.WriteLine(ex.InnerException);
            }
            return this;
        }

    private void OnP()
        {
            int result = -536;
            
            while (rL)
            {
                result = cr.CB_IO_Init(SlaveIndex); 
                if (result == 0)
                {
                    …
                }
            }

    .
    .
    .
    }

AnswerRe: Interface issue when implementing Factory pattern Pin
Eddy Vluggen16-Nov-12 9:01
professionalEddy Vluggen16-Nov-12 9:01 
GeneralRe: Interface issue when implementing Factory pattern Pin
MichCl16-Nov-12 9:18
MichCl16-Nov-12 9:18 
GeneralRe: Interface issue when implementing Factory pattern Pin
Eddy Vluggen16-Nov-12 13:46
professionalEddy Vluggen16-Nov-12 13:46 
GeneralRe: Interface issue when implementing Factory pattern Pin
MichCl19-Nov-12 2:20
MichCl19-Nov-12 2:20 
AnswerRe: Interface issue when implementing Factory pattern Pin
Eddy Vluggen19-Nov-12 2:32
professionalEddy Vluggen19-Nov-12 2:32 
GeneralRe: Interface issue when implementing Factory pattern Pin
MichCl19-Nov-12 3:51
MichCl19-Nov-12 3:51 
GeneralRe: Interface issue when implementing Factory pattern Pin
Eddy Vluggen19-Nov-12 4:46
professionalEddy Vluggen19-Nov-12 4:46 
GeneralRe: Interface issue when implementing Factory pattern Pin
MichCl19-Nov-12 9:38
MichCl19-Nov-12 9:38 
GeneralRe: Interface issue when implementing Factory pattern Pin
Eddy Vluggen19-Nov-12 9:53
professionalEddy Vluggen19-Nov-12 9:53 
QuestionIssue in accessing 32 bit C++ DLL in Windows Server 2008 Pin
Kumaran Poongavanam16-Nov-12 8:32
Kumaran Poongavanam16-Nov-12 8:32 
AnswerRe: Issue in accessing 32 bit C++ DLL in Windows Server 2008 Pin
Eddy Vluggen16-Nov-12 9:04
professionalEddy Vluggen16-Nov-12 9:04 
GeneralRe: Issue in accessing 32 bit C++ DLL in Windows Server 2008 Pin
Kumaran Poongavanam16-Nov-12 10:09
Kumaran Poongavanam16-Nov-12 10:09 
AnswerRe: Issue in accessing 32 bit C++ DLL in Windows Server 2008 Pin
Dave Kreskowiak16-Nov-12 11:55
mveDave Kreskowiak16-Nov-12 11:55 
AnswerRe: Issue in accessing 32 bit C++ DLL in Windows Server 2008 Pin
jschell17-Nov-12 6:11
jschell17-Nov-12 6:11 
QuestionOutlook 2010 / C# - Hide or Remove item from ContextMenuContactItem + add custom item into it Pin
Cristian Capannini16-Nov-12 5:20
Cristian Capannini16-Nov-12 5:20 
QuestionException Handling Pin
Phanindra26116-Nov-12 3:21
Phanindra26116-Nov-12 3:21 
AnswerRe: Exception Handling Pin
BobJanova16-Nov-12 3:41
BobJanova16-Nov-12 3:41 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.