473,857 Members | 1,914 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Assigning a 'type' to a variable at runtime

I'm trying to find a way to create a variable of a given type at runtime
where I won't know the type until it actually executes. For example,

dim x as object = "hi"

x is declared as an object but x.gettype returns 'string', so it knows it
contains a string.

If I want to create a variable "y" as the same type that variable x contains
how would I do that without having to iterate thru every possible
type? That is, for the above example I would want the equivalent of "dim y
as string" because x.gettype is string. Another example:

dim x as object = new MyClass

x.gettype would return 'MyClass' so I would want the equivalent of "dim y
as myclass".

Although it's not legal to do this "Dim y as x.gettype.name" that is
exactly what I want to do.

Is there anyway to accomplish this?

Thanks, John
Nov 21 '05 #1
11 3574
>Although it's not legal to do this "Dim y as x.gettype.name" that is
exactly what I want to do.

Is there anyway to accomplish this?


No. Why do you think you need this? What will you do with the
variable? Why can't you simply use Object for the second variable as
well?
Mattias

--
Mattias Sjögren [MVP] mattias @ mvps.org
http://www.msjogren.net/dotnet/ | http://www.dotnetinterop.com
Please reply only to the newsgroup.
Nov 21 '05 #2
JohnR,

We see this more in this newsgroup and than I think forever, what will be
the use of this solution. It sounds for me as throwing apples and pears in
one container and than split them again afterwards. Why not direct in two
containers. That will probably keep the taste of the apples and the pears
much better.

Can you explain to us what is your reason behind this question?

(That container withouth telling what it is, is of couse 'object').

Cor
"JohnR" <Jo******@hotma il.com> schreef in bericht
news:RqH2f.9102 $tU1.1605@trndn y07...
I'm trying to find a way to create a variable of a given type at runtime
where I won't know the type until it actually executes. For example,

dim x as object = "hi"

x is declared as an object but x.gettype returns 'string', so it knows it
contains a string.

If I want to create a variable "y" as the same type that variable x
contains how would I do that without having to iterate thru every possible
type? That is, for the above example I would want the equivalent of "dim
y as string" because x.gettype is string. Another example:

dim x as object = new MyClass

x.gettype would return 'MyClass' so I would want the equivalent of "dim y
as myclass".

Although it's not legal to do this "Dim y as x.gettype.name" that is
exactly what I want to do.

Is there anyway to accomplish this?

Thanks, John

Nov 21 '05 #3
"JohnR" <Jo******@hotma il.com> schrieb:
I'm trying to find a way to create a variable of a given type at runtime
[...]
Although it's not legal to do this "Dim y as x.gettype.name" that is
exactly what I want to do.


Strict typing is mainly a compile-time feature. This means that it will
prevent the developer from writing code which will crash at runtime. Thus
it doesn't make much sense to support a construct as shown above. You may
want to declare the variable 'As Object' and assign values/references of
arbitrary types at runtime.

--
M S Herfried K. Wagner
M V P <URL:http://dotnet.mvps.org/>
V B <URL:http://classicvb.org/petition/>

Nov 21 '05 #4
"JohnR" <Jo******@hotma il.com> wrote in message
news:RqH2f.9102 $tU1.1605@trndn y07...
I'm trying to find a way to create a variable of a given type at runtime
where I won't know the type until it actually executes.
I would suggest that this is /possible/, but definitely not something
I would recommend - unless you *love* trying to sort out wierd
and wonderful Run-Time errors.

..Net is an odd mix of [what we used to call] Early and Late binding.
At compile time, it's "Early Bound", using strict Types for everything,
which means that you /have/ to know the Type of something before
you can compile code to do anything with it. Objects are nowhere
as useful as Variants used to be.
At run-time, though, .Net seems to fall back on something more akin
to "Late Binding", loading methods as and when it needs them.
dim x as object = "hi"

x is declared as an object but x.gettype returns 'string', so it knows it
contains a string.
True.
If I want to create a variable "y" as the same type that variable x
contains
If you don't know the Type of "x" to start with, how do you intend to
manipulate "y", whose Type you have to know before you can access
its properties and methods?

It boils down to having to know something about a class before you
can do anything with it.
how would I do that without having to iterate thru every possible
type?


You /could/ use Activator.Creat eInstance, but it takes as one of
its arguments the Type of object you want to create ...

HTH,
Phill W.
Nov 21 '05 #5
Thanks to all the replys... I understand that, at first glance, what I am
asking for doesn't make sense, but, it really does... I always start out
with the stating the problem as directly as possible without unnecessary
info, but since you all are asking "why in the world would you want to do
that?" here is why:

I am trying to write a new ArrayList class which will have (at least for my
application) a better IndexOf method. All through this forum we see
questions about people overriding the Equals method of a custom class only
to find that the ArrayList.Index of method calls the Object.Equals method and
not their overridden Equals method. My goal was to remedy this situation.
In addition, I wanted to have IndexOf to do a case insensitive search if the
obj is of type 'string'. Here is the class def'n:

Public Class arraylist
Inherits System.collecti ons.ArrayList
Public Shadows Function indexof(ByVal obj As Object) As Integer

'this will cause indexof to do a case insensitive search if obj
'is a string
If TypeOf obj Is String Then
For ptr As Integer = 0 To Me.Count - 1
If CType(Me(ptr), String).ToUpper = CType(obj,
String).ToUpper Then
Return ptr
End If
Next
Return -1
Else
For ptr As Integer = 0 To Me.Count - 1

'the next commented line won't work because it
'will call the object.equals method and NOT the
'overridden equals method of the class that is
'passed as the obj parameter

'If Me(ptr).equals( obj) Then

'However, let's say obj is of type "MyOwnClass " then
'the following WILL work because it will call the
'equals method that is defined in the MyOwnClass class.

If CType(Me(ptr), MyOwnClass).equ als(obj) Then
Return ptr
End If

'taking this to the ultimate solution, I would have
'liked to do something like this:
'If Ctype(Me(ptr), Me(ptr).gettype .name).equals(o bj) Then

Next
Return -1
End If

End Function
End Class

So you see, I only need to cast the type onto whatever is contained in the
obj so that it calls the proper Equals method. That's it. That's the only
reason I need to do this. I'm not going to mess with the obj in any other
way so I'm not worried about "bugs" that may be introduced by screwing with
variable types at runtime.
Clearly the alternative (and what I'm actually doing now) is testing the
type of obj for each of my custom classes, and doing a manual cast once I
find out what type it is. Very tacky, but it does work. I'm looking for a
more elegant, general solution here.

John

"Phill. W" <P.A.Ward@o-p-e-n-.-a-c-.-u-k> wrote in message
news:di******** **@yarrow.open. ac.uk...
"JohnR" <Jo******@hotma il.com> wrote in message
news:RqH2f.9102 $tU1.1605@trndn y07...
I'm trying to find a way to create a variable of a given type at runtime
where I won't know the type until it actually executes.


I would suggest that this is /possible/, but definitely not something
I would recommend - unless you *love* trying to sort out wierd
and wonderful Run-Time errors.

.Net is an odd mix of [what we used to call] Early and Late binding.
At compile time, it's "Early Bound", using strict Types for everything,
which means that you /have/ to know the Type of something before
you can compile code to do anything with it. Objects are nowhere
as useful as Variants used to be.
At run-time, though, .Net seems to fall back on something more akin
to "Late Binding", loading methods as and when it needs them.
dim x as object = "hi"

x is declared as an object but x.gettype returns 'string', so it knows it
contains a string.


True.
If I want to create a variable "y" as the same type that variable x
contains


If you don't know the Type of "x" to start with, how do you intend to
manipulate "y", whose Type you have to know before you can access
its properties and methods?

It boils down to having to know something about a class before you
can do anything with it.
how would I do that without having to iterate thru every possible
type?


You /could/ use Activator.Creat eInstance, but it takes as one of
its arguments the Type of object you want to create ...

HTH,
Phill W.

Nov 21 '05 #6
JOhn,
I understand that, at first glance, what I am
asking for doesn't make sense, but, it really does...
No, still doesn't. <g>

All through this forum we see
questions about people overriding the Equals method of a custom class only
to find that the ArrayList.Index of method calls the Object.Equals method and
not their overridden Equals method.


Maybe I haven't been paying attention, but I don't see that asked very
often.

Anyway, Object.Equals is an Overridable method. As long as the Equals
method in your derived class is declared with Overrides, your
implementation should be called by ArrayList. This is basic
polymorphism.
Mattias

--
Mattias Sjögren [MVP] mattias @ mvps.org
http://www.msjogren.net/dotnet/ | http://www.dotnetinterop.com
Please reply only to the newsgroup.
Nov 21 '05 #7
JohnR,
| All through this forum we see
| questions about people overriding the Equals method of a custom class only
| to find that the ArrayList.Index of method calls the Object.Equals method
and
| not their overridden Equals method.

As Mattias suggests, and I believe we have discussed before Object.Equals is
overridable! If you *override* Object.Equals in your derived class (not
ArrayList). ArrayList.Index Of will polymorphically call the "correct" equal
method, something like:

Public Class Thingamajig

Private ReadOnly m_value1 As String
Private ReadOnly m_value2 As Integer

Public Sub New(ByVal value1 As String, ByVal value2 As Integer)
m_value1 = value1
m_value2 = value2
End Sub

Public Overloads Function Equals(ByVal other As Thingamajig) As
Boolean
Return m_value1 = other.m_value1 AndAlso m_value2 =
other.m_value2
End Function

Public Overloads Overrides Function Equals(ByVal obj As Object) As
Boolean
If TypeOf obj Is Thingamajig Then
Return Equals(DirectCa st(obj, Thingamajig))
Else
Return False
End If
End Function

End Class

Public Shared Sub Main()
Dim list As New ArrayList
list.Add(New Thingamajig("ja y", 1))
list.Add(New Thingamajig("ja y", 2))
list.Add(New Thingamajig("ja y", 3))
list.Add(New Thingamajig("Jo hnR", 1))
list.Add(New Thingamajig("Jo hnR", 2))
list.Add(New Thingamajig("Jo hnR", 3))

Dim index As Integer = list.IndexOf(Ne w Thingamajig("Jo hnR", 2))

End Sub

| Public Shadows Function indexof(ByVal obj As Object) As Integer
Shadows is anti-polymorphic!

Anti-polymorphic code normally causes more problems then it helps.

You need to *Override* IndexOf instead, something like:

| Public Overloads Overrides Function indexof(ByVal obj As Object) As
Integer

Overloads is needed here as IndexOf is overloaded (see below).

| 'this will cause indexof to do a case insensitive search if obj
| 'is a string
I would use a Case Insensitive Comparer, such as
System.Collecti ons.CaseInsensi tiveComparer.De fault or DeafultInvarian t
instead, something like:

Public Class ArrayList
Inherits System.collecti ons.ArrayList

Public Overloads Overrides Function IndexOf(ByVal value As Object)
As Integer
Return IndexOf(value, 0, Me.Count)
End Function

Public Overloads Overrides Function IndexOf(ByVal value As Object,
ByVal startIndex As Integer) As Integer
Return IndexOf(value, startIndex, Me.Count - startIndex)
End Function

Public Overloads Overrides Function IndexOf(ByVal value As Object,
ByVal startIndex As Integer, ByVal count As Integer) As Integer
Dim comparer As IComparer =
CaseInsensitive Comparer.Defaul tInvariant
For index As Integer = startIndex To startIndex + count - 1
If comparer.Compar e(Me(index), value) = 0 Then
Return index
End If
Next
Return -1
End Function

End Class

The CaseInsensitive Comparer object knows how to do case insensitive
comparisons of strings & comparisons of other types (such as integers).

--
Hope this helps
Jay
T.S. Bradley - http://www.tsbradley.net
"JohnR" <Jo******@hotma il.com> wrote in message
news:MLQ2f.2246 $Uj2.1481@trndn y03...
| Thanks to all the replys... I understand that, at first glance, what I am
| asking for doesn't make sense, but, it really does... I always start out
| with the stating the problem as directly as possible without unnecessary
| info, but since you all are asking "why in the world would you want to do
| that?" here is why:
|
| I am trying to write a new ArrayList class which will have (at least for
my
| application) a better IndexOf method. All through this forum we see
| questions about people overriding the Equals method of a custom class only
| to find that the ArrayList.Index of method calls the Object.Equals method
and
| not their overridden Equals method. My goal was to remedy this situation.
| In addition, I wanted to have IndexOf to do a case insensitive search if
the
| obj is of type 'string'. Here is the class def'n:
|
| Public Class arraylist
| Inherits System.collecti ons.ArrayList
| Public Shadows Function indexof(ByVal obj As Object) As Integer
|
| 'this will cause indexof to do a case insensitive search if obj
| 'is a string
| If TypeOf obj Is String Then
| For ptr As Integer = 0 To Me.Count - 1
| If CType(Me(ptr), String).ToUpper = CType(obj,
| String).ToUpper Then
| Return ptr
| End If
| Next
| Return -1
| Else
| For ptr As Integer = 0 To Me.Count - 1
|
| 'the next commented line won't work because it
| 'will call the object.equals method and NOT the
| 'overridden equals method of the class that is
| 'passed as the obj parameter
|
| 'If Me(ptr).equals( obj) Then
|
| 'However, let's say obj is of type "MyOwnClass " then
| 'the following WILL work because it will call the
| 'equals method that is defined in the MyOwnClass class.
|
| If CType(Me(ptr), MyOwnClass).equ als(obj) Then
| Return ptr
| End If
|
| 'taking this to the ultimate solution, I would have
| 'liked to do something like this:
| 'If Ctype(Me(ptr), Me(ptr).gettype .name).equals(o bj) Then
|
| Next
| Return -1
| End If
|
| End Function
| End Class
|
| So you see, I only need to cast the type onto whatever is contained in the
| obj so that it calls the proper Equals method. That's it. That's the
only
| reason I need to do this. I'm not going to mess with the obj in any other
| way so I'm not worried about "bugs" that may be introduced by screwing
with
| variable types at runtime.
| Clearly the alternative (and what I'm actually doing now) is testing the
| type of obj for each of my custom classes, and doing a manual cast once I
| find out what type it is. Very tacky, but it does work. I'm looking for
a
| more elegant, general solution here.
|
| John
|
| "Phill. W" <P.A.Ward@o-p-e-n-.-a-c-.-u-k> wrote in message
| news:di******** **@yarrow.open. ac.uk...
| > "JohnR" <Jo******@hotma il.com> wrote in message
| > news:RqH2f.9102 $tU1.1605@trndn y07...
| >> I'm trying to find a way to create a variable of a given type at
runtime
| >> where I won't know the type until it actually executes.
| >
| > I would suggest that this is /possible/, but definitely not something
| > I would recommend - unless you *love* trying to sort out wierd
| > and wonderful Run-Time errors.
| >
| > .Net is an odd mix of [what we used to call] Early and Late binding.
| > At compile time, it's "Early Bound", using strict Types for everything,
| > which means that you /have/ to know the Type of something before
| > you can compile code to do anything with it. Objects are nowhere
| > as useful as Variants used to be.
| > At run-time, though, .Net seems to fall back on something more akin
| > to "Late Binding", loading methods as and when it needs them.
| >
| >> dim x as object = "hi"
| >>
| >> x is declared as an object but x.gettype returns 'string', so it knows
it
| >> contains a string.
| >
| > True.
| >
| >> If I want to create a variable "y" as the same type that variable x
| >> contains
| >
| > If you don't know the Type of "x" to start with, how do you intend to
| > manipulate "y", whose Type you have to know before you can access
| > its properties and methods?
| >
| > It boils down to having to know something about a class before you
| > can do anything with it.
| >
| >> how would I do that without having to iterate thru every possible
| >> type?
| >
| > You /could/ use Activator.Creat eInstance, but it takes as one of
| > its arguments the Type of object you want to create ...
| >
| > HTH,
| > Phill W.
| >
| >
|
|
Nov 21 '05 #8
Hi Jay,

First thank you for your most excellent suggestion of using Icomparer for a
case insensitive search. I didn't even think of that one!

However, concerning the overrideable object.equals method... I must be
really missing something, cause it doesn't work for me. Let me explain that
I override the equals method because that way I can compare equality using
different criteria. Below is a complete example that you can cut and past
into a forms' code. It consists of a custom class called PERSON with two
properties. IsMale as string, and Age as integer. I also override the
equals method to determine equality if the age matches. I store instances of
the People class in an arraylist called PeopleCollectio n. I can pass
either an instance of the People class to the PeopleCollectio n.indexof
method or I can pass an integer. Either way I would compare the ages.
The problem is that in this code my overridden equals method never gets
called. If you can explain why my code doesn't work that would be great.
I have actually gotten this stuff to work by creating a new arraylist class
that inherits system.collecti on.arraylist. In my arraylist class I override
the indexof method and simply interate thru the if me.item(i).equa ls(obj)
for each of the items in the arraylist. In my arraylist class the proper
equals method DOES get called, so it is a good workaround for me. I'm just
not sure why the 'real' arraylist indexof function doesn't call the right
equals method.... Anyway when I run the following code on my system, the
overridden equals method in the Person class never gets called.
Option Strict On
Option Explicit On

Public Class Form1

Inherits System.Windows. Forms.Form

'insert your windows generated code here

Private Sub Form1_Load(ByVa l sender As System.Object, ByVal e As
System.EventArg s) Handles MyBase.Load
Dim PeopleCollectio n As New ArrayList

Dim Customer As New Person

Customer.Age = 25

Customer.IsMale = "Yes"

PeopleCollectio n.Add(Customer)

Dim y As New Person

y.Age = 25

Dim x As Integer = PeopleCollectio n.IndexOf(y) 'this returns -1

End Sub

End Class

Public Class Person

Private _IsMale As String

Private _age As Integer

Public Overloads Overrides Function equals(ByVal obj As Object) As Boolean

If obj Is Nothing Then Return False

If Me.GetType Is obj.GetType Then

Return Me.Age = CType(obj, Person).Age

ElseIf TypeOf obj Is Integer Then

Return Me.Age = CType(obj, Integer)

End If

End Function

Public Overloads Function equals(ByVal obj As Person) As Boolean

If Me.Age = obj.Age Then

Return True

End If

Return False

End Function

Public Property IsMale() As String

Get

Return _IsMale

End Get

Set(ByVal Value As String)

_IsMale = Value

End Set

End Property

Public Property Age() As Integer

Get

Return _age

End Get

Set(ByVal Value As Integer)

_age = Value

End Set

End Property

End Class
Nov 21 '05 #9

JohnR wrote:
[snip]
I'm just
not sure why the 'real' arraylist indexof function doesn't call the right
equals method.... Anyway when I run the following code on my system, the
overridden equals method in the Person class never gets called.
I just copied and pasted your code into a brand new project ....
Dim x As Integer = PeopleCollectio n.IndexOf(y) 'this returns -1


.... and x got set to zero, after hitting a breakpoint I set in
Person.equals ... so if you are getting something else I am at a loss
as to why.

--
Larry Lard
Replies to group please

Nov 21 '05 #10

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

0
1607
by: vanGogh | last post by:
I have generated classes based on an Xml schema file (xsd) using the XSD.exe tool. My goal is to: - write an application that can parse XML documents - fill objects (based on the generated classes) with the XML data in element nodes or attributes - assemble the objects so they are contained in their parent - add the resulting object to an arrayList The problem I’m having is that I am not sure how to go about assigning an object to...
14
74934
by: Eric Bantock | last post by:
Very basic question I'm afraid. Once an array has been declared, is there a less tedious way of assigning values to its members than the following: myarray=8; myarray=3; myarray=4; myarray=0; myarray=0; myarray=1; myarray=8;
3
1856
by: yogi | last post by:
Hi guys, I'm trying to write a program that will read in a series of files and create a 3D array from the files read in for converting 2D images to 3D objects. The values read in will be considered as pixel colours and the size that 1 pixel occupies will depend on an input from the user when running the program. How can I dynamically change the data type of my 3D array at runtime. eg. 3D array was defined as type unsigned char in the code...
26
2449
by: Michael McGarry | last post by:
Hi, I am pretty sure this is not possible, but maybe somehow it is. Given a variable, can I tell what type it is at runtime? Michael
15
6645
by: Iced Crow | last post by:
In C# I know that you can use delegates to assing multiple addresses of sub and functions to a delegate and have it fire multiple procedures... How do I do this in VB? I only know of assigning a single method to a delegate in VB.NET. I want to use it as in C#... to fire multiple events. Thanks in advance!
7
3470
by: Adrian Parker | last post by:
'function to convert null to nothing Function CheckDate(ByVal DRow As DataRow, ByVal strCol As String) As Date If DRow.Item(strCol) Is System.DBNull.Value Then Return Nothing Else Return DRow.Item(strCol) End If End Function
20
7031
by: weston | last post by:
I've got a piece of code where, for all the world, it looks like this fails in IE 6: hometab = document.getElementById('hometab'); but this succeeds: hometabemt = document.getElementById('hometab'); Has anyone ever seen anything like this before, or am I dreaming?
669
26390
by: Xah Lee | last post by:
in March, i posted a essay “What is Expressiveness in a Computer Language”, archived at: http://xahlee.org/perl-python/what_is_expresiveness.html I was informed then that there is a academic paper written on this subject. On the Expressive Power of Programming Languages, by Matthias Felleisen, 1990. http://www.ccs.neu.edu/home/cobbe/pl-seminar-jr/notes/2003-sep-26/expressive-slides.pdf
8
4550
by: =?Utf-8?B?VHJlY2l1cw==?= | last post by:
Hello, Newsgroupians: I have a large class with a lot of member variables. I also have a function in the class that I would like to change ALL Of the member variables. I am trying to assign "this" to the result, but I always get the error message, "Cannot assign to '<this>' because it is read-only." I've been searching on the Internet, and I notice some C# code is violating this rule. Perhaps their code is wrong.
0
9923
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main usage, and What is the difference between ONU and Router. Let’s take a closer look ! Part I. Meaning of...
0
11082
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
0
10711
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth. The Art of Business Website Design Your website is...
1
10807
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
0
9549
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then launch it, all on its own.... Now, this would greatly impact the work of software developers. The idea...
1
7939
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms. Adolph will...
0
7104
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one. At the time of converting from word file to html my equations which are in the word document file was convert into image. Globals.ThisAddIn.Application.ActiveDocument.Select();...
0
5774
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
2
4190
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.